@xenosystem/agent-cli 0.5.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +157 -0
  3. package/dist/index.js +6820 -0
  4. package/dist/metafile-esm.json +1 -0
  5. package/native/xeno-pty/prebuilds/PROVENANCE.md +69 -0
  6. package/native/xeno-pty/prebuilds/darwin-arm64/manifest.json +18 -0
  7. package/native/xeno-pty/prebuilds/darwin-arm64/xeno_pty.node +0 -0
  8. package/native/xeno-pty/prebuilds/darwin-x64/manifest.json +18 -0
  9. package/native/xeno-pty/prebuilds/darwin-x64/xeno_pty.node +0 -0
  10. package/native/xeno-pty/prebuilds/linux-arm64/manifest.json +18 -0
  11. package/native/xeno-pty/prebuilds/linux-arm64/xeno_pty.node +0 -0
  12. package/native/xeno-pty/prebuilds/linux-x64/manifest.json +18 -0
  13. package/native/xeno-pty/prebuilds/linux-x64/xeno_pty.node +0 -0
  14. package/native/xeno-pty/prebuilds/win32-x64/manifest.json +18 -0
  15. package/native/xeno-pty/prebuilds/win32-x64/xeno_pty.node +0 -0
  16. package/native/xeno-pty/trusted-keys.json +4 -0
  17. package/ownership/CLEAN_ROOM_CONTRIBUTOR_GUIDE.md +63 -0
  18. package/ownership/audit.mjs +727 -0
  19. package/ownership/containment-reviewer-trusted-keys.json +4 -0
  20. package/ownership/containment-trusted-keys.json +4 -0
  21. package/ownership/evidence/PROPRIETARY-COMMAND-1/implementation-record.md +77 -0
  22. package/ownership/evidence/PROPRIETARY-COMMAND-1/provenance-review.md +51 -0
  23. package/ownership/evidence/PROPRIETARY-MEDIA-1/implementation-record.md +131 -0
  24. package/ownership/evidence/PROPRIETARY-MEDIA-1/provenance-review.md +50 -0
  25. package/ownership/evidence/PROPRIETARY-PTY-1/implementation-record.md +86 -0
  26. package/ownership/evidence/PROPRIETARY-PTY-1/provenance-review.md +52 -0
  27. package/ownership/evidence/PROPRIETARY-RUNTIME-1/implementation-record.md +68 -0
  28. package/ownership/evidence/PROPRIETARY-RUNTIME-1/provenance-review.md +32 -0
  29. package/ownership/evidence/PROPRIETARY-TOOLCHAIN-1/implementation-record.md +53 -0
  30. package/ownership/evidence/PROPRIETARY-TOOLCHAIN-1/provenance-review.md +32 -0
  31. package/ownership/evidence/PROPRIETARY-UI-1/implementation-record.md +96 -0
  32. package/ownership/evidence/PROPRIETARY-UI-1/provenance-review.md +46 -0
  33. package/ownership/ownership-policy.json +232 -0
  34. package/ownership/ownership-policy.schema.json +192 -0
  35. package/ownership/templates/clean-room-implementation-record.md +70 -0
  36. package/ownership/templates/provenance-review.md +51 -0
  37. package/package.json +77 -0
  38. package/scripts/install.ps1 +18 -0
  39. package/scripts/install.sh +18 -0
@@ -0,0 +1,53 @@
1
+ # Toolchain Boundary Record: Current Xeno Build System
2
+
3
+ ## Identity
4
+
5
+ - Component: TypeScript/Node development, test, analysis, bundling, packaging, native-build, and CI toolchain
6
+ - Replacement milestone: PROPRIETARY-TOOLCHAIN-1
7
+ - Repository and paths: CLI/SDK manifests and lockfiles, build/test configs, native build scripts, CI workflows, and generated compliance inventories
8
+ - Record owner: Xeno engineering, final owner assignment pending
9
+ - Audit date (UTC): 2026-07-12
10
+ - Status: boundary inventory and anti-overclaim controls complete; P4 implementation not started
11
+
12
+ ## Current Boundary
13
+
14
+ - Product target: P2.
15
+ - P4 capability gate: false.
16
+ - Generated CLI development graph at audit: 397 records, including 392 build-only and 5 external-runtime records.
17
+ - Unique development package names at audit: 324.
18
+ - Direct tool groups: TypeScript/type contracts, tsup/esbuild, TSX, Vite/Vitest/Rollup, ESLint/typescript-eslint, npm/lockfile tooling, and @yao-pkg/pkg.
19
+ - Native and hosted boundaries: operating-system compilers/SDKs/linkers, Node/N-API headers, shell/PowerShell, and GitHub Actions remain external.
20
+ - License review: seven installed development entries require review; no claim resolves those entries automatically.
21
+
22
+ ## Controls Added
23
+
24
+ - `@yao-pkg/pkg@6.21.0` is exact and committed to the lockfile.
25
+ - The cross-platform owned packaging orchestrator invokes the exact installed `@yao-pkg/pkg@6.21.0` entry point directly; release packaging does not use `npx` or download a moving package compiler.
26
+ - Deterministic ZIP/TAR generation, checksums, target validation, and runtime-manifest orchestration are Xeno-owned control logic.
27
+ - Optional Bun packaging requires a preinstalled executable and never downloads Bun in the build script.
28
+ - `scripts/verify-toolchain-boundary.mjs` reconciles direct manifest requests to lockfile versions, generated development records, license-review entries, and the false P4 policy gate.
29
+ - `npm run compliance:toolchain` writes and immediately verifies `docs/compliance/toolchain-boundary.json`.
30
+ - Human-readable scope and exit criteria are in `docs/TOOLCHAIN_BOUNDARIES.md`.
31
+
32
+ ## P4 Replacement Scope
33
+
34
+ P4 requires owned language parsing/type analysis/transpilation, bundling and source maps, test runtime/assertions/mocking/coverage, static analysis, package resolution/integrity/packing/publication, executable packaging, native build orchestration, and deterministic provenance. The accepted OS/compiler/SDK/hosted-CI boundary must be approved before implementation.
35
+
36
+ ## Verification Evidence
37
+
38
+ - Toolchain boundary write/verify passes against the current lock, policy, ownership graph, and license inventory.
39
+ - The packaging control path passes focused deterministic archive and PE-import tests, a clean Debian dual-target run, exact Windows cross-built execution, and same-environment byte comparison.
40
+ - CLI build and TypeScript checks pass with the sibling SDK junction restored.
41
+ - CLI compliance reports zero ownership violations; artifact-inclusive audit reports 927 records and zero violations.
42
+ - These results prove classification, control-path behavior, and same-environment reproducibility only. They do not prove P4 or independent-environment byte reproducibility.
43
+ - No release was published by this work.
44
+
45
+ ## Handoff
46
+
47
+ - Phase 7 inventory and claim boundary complete: yes
48
+ - P4 implementation complete: no
49
+ - P4 evidence complete: no
50
+ - P4 capability gate may be marked achieved: no
51
+ - Ready to scope a separately funded compiler/toolchain program: yes
52
+ - Counsel/public P4 approval: pending
53
+ - Author/date: Codex implementation assistant, 2026-07-12
@@ -0,0 +1,32 @@
1
+ # Independent Provenance Review: Development Toolchain Boundary
2
+
3
+ ## Review Identity
4
+
5
+ - Component: current Xeno development toolchain
6
+ - Replacement milestone: PROPRIETARY-TOOLCHAIN-1
7
+ - Boundary record: `ownership/evidence/PROPRIETARY-TOOLCHAIN-1/implementation-record.md`
8
+ - Reviewer: pending independent reviewer
9
+ - Review date (UTC): pending
10
+ - Reviewer independent of implementation: pending
11
+
12
+ ## Current Evidence Status
13
+
14
+ - [x] Direct tool requests reconcile to committed lockfile versions.
15
+ - [x] The generated development graph and review-required licenses are recorded.
16
+ - [x] Audited release paths prohibit network-fallback `npx` resolution.
17
+ - [x] Documentation explicitly rejects P4 and byte-reproducibility claims.
18
+ - [ ] Non-Xeno language/type/bundle/test/lint/package tools have been replaced.
19
+ - [ ] Accepted OS/compiler/SDK/CI boundaries have been approved.
20
+ - [ ] Two clean environments produce byte-identical artifacts.
21
+ - [ ] Signed provenance and independent tool-binary review are complete.
22
+ - [ ] Counsel has approved the P4 ownership language.
23
+
24
+ ## Decision
25
+
26
+ - Engineering boundary decision: accurate for current P2 work
27
+ - P4 implementation decision: not approved or implemented
28
+ - P4 capability gate may be marked achieved: no
29
+ - Public P4/proprietary-toolchain claim approved: no
30
+ - Required follow-up: approve platform boundaries, fund the compiler/toolchain program, replace each capability group, prove clean reproducibility, and complete independent/counsel review
31
+ - Reviewer signature/date: pending
32
+ - Counsel approval reference: pending
@@ -0,0 +1,96 @@
1
+ # Clean-Room Implementation Record: Xeno Framework-Neutral UI
2
+
3
+ ## Identity
4
+
5
+ - Component: Xeno-owned agent UI controller, semantic view model, and DOM renderer
6
+ - Replacement milestone: PROPRIETARY-UI-1
7
+ - Repository and paths: `xeno-agent-sdk/src/ui/`, `src/electron/setupAIHandlers.ts`, `src/context/ScreenCapture.ts`
8
+ - Record owner: Xeno engineering, final owner assignment pending
9
+ - Implementer(s): Codex implementation assistant; human accessibility and UI review pending
10
+ - Contract author(s): Xeno engineering requirements in `switch-to-proprietary.md`
11
+ - Started at (UTC): 2026-07-12
12
+ - Candidate revision: `87ae64b55aa1b8c2e126294e717b229e0945db65` plus recorded working-tree changes
13
+ - Status: engineering implementation and package removal complete; independent review and release-version approval pending
14
+
15
+ ## Frozen behavioral contract
16
+
17
+ - Public API: renderer API version 1 exports `createAgentUiController`, `createAgentUiView`, `dispatchAgentUiAction`, and `mountAgentUi`.
18
+ - State behavior: immutable snapshots project ordered messages, streaming text, tool execution, errors, token usage, processing state, and one current permission request.
19
+ - Interaction behavior: multiline composition, Ctrl/Command+Enter submission, duplicate-send guard, cancellation, clearing, retry, permission request identity checks, focus, subscription, and explicit disposal.
20
+ - Accessibility behavior: labelled region, polite status and log live regions, busy state, article/status/alert timeline roles, alert-dialog permission prompt, labelled controls, focus-visible styling, and reduced-motion handling.
21
+ - Security and resource limits: DOM output uses created nodes and `textContent`; active URL schemes are rejected; tool details are bounded to 64 KiB; stale permission actions cannot resolve a newer prompt.
22
+ - Host boundary: Electron package discovery is removed. IPC registration and desktop capture require explicit host adapters.
23
+ - Intentional incompatibilities: former React components/hooks and hidden Electron auto-discovery are breaking changes reserved for the next major SDK release and documented in `docs/migrations/sdk-ui-v1.md`.
24
+
25
+ ## Normative and permitted inputs
26
+
27
+ | Source | Revision/date | Purpose | Terms reviewed by | Evidence path |
28
+ | --- | --- | --- | --- | --- |
29
+ | Xeno proprietary migration specification | 2026-07-12 | UI ownership, package removal, compatibility, and release constraints | Engineering; counsel pending | `switch-to-proprietary.md` |
30
+ | Existing Xeno-owned UI behavior and types | candidate working tree | Product behavior to preserve without copying third-party implementation | Engineering | removed `src/ui/*` React components and focused tests |
31
+ | HTML DOM and accessibility platform contracts | accessed 2026-07-12 | DOM creation, events, roles, live regions, labels, and focus | Engineering | public web-platform and WAI-ARIA documentation |
32
+ | Xeno AgentLoop callback and permission contracts | candidate working tree | Streaming, tool, token, cancellation, and permission projection | Engineering | `src/core/agent-loop.ts`, `src/security/permissions.ts` |
33
+
34
+ ## Contributor source-exposure disclosure
35
+
36
+ | Contributor | Inspected replaced source? | Date/range | Separation or review decision | Counsel reference |
37
+ | --- | --- | --- | --- | --- |
38
+ | Codex implementation assistant | No React or Electron implementation source was inspected. Xeno-owned prior components, Xeno contracts, and public platform behavior were used. | 2026-07-12 | Independent UI, accessibility, and provenance review required | Pending |
39
+ | Human contributors | Disclosure not yet collected | Pending | Must be completed before capability approval | Pending |
40
+
41
+ ## Implementation log
42
+
43
+ | Date (UTC) | Decision | Contract/source basis | Author | Evidence path |
44
+ | --- | --- | --- | --- | --- |
45
+ | 2026-07-12 | Replace hook state with an observable controller and immutable snapshots | Phase 4 deliverable 1 | Codex implementation assistant | `src/ui/controller.ts` |
46
+ | 2026-07-12 | Version the semantic renderer contract independently from host frameworks | Phase 4 deliverable 2 | Codex implementation assistant | `src/ui/types.ts`, `src/ui/view-model.ts` |
47
+ | 2026-07-12 | Provide a safe owned DOM renderer with coalesced frame updates | Phase 4 exit gate | Codex implementation assistant | `src/ui/dom-renderer.ts`, `src/ui/styles.ts` |
48
+ | 2026-07-12 | Remove React components, hook, peer, types, lock edges, and build externals | Phase 4 deliverables 4-5 | Codex implementation assistant | package, lock, source, bundle, and ownership audit |
49
+ | 2026-07-12 | Replace hidden Electron package discovery with explicit host injection | framework-neutral host boundary | Codex implementation assistant | `setupAIHandlers.ts`, `ScreenCapture.ts` |
50
+ | 2026-07-12 | Publish the next-major migration contract | versioned migration requirement | Codex implementation assistant | `docs/migrations/sdk-ui-v1.md` |
51
+ | 2026-07-12 | Forbid React, React DOM, and Electron reintroduction in SDK/CLI policy | ownership regression gate | Codex implementation assistant | ownership policy revision 7 |
52
+ | 2026-07-12 | Grow the multiline composer to a bounded 144 px height while preserving plain Enter editing and Ctrl/Command+Enter submission | browser interaction contract | Codex implementation assistant | `src/ui/dom-renderer.ts`, browser audit fixture |
53
+ | 2026-07-12 | Preserve permission-dialog DOM/focus for an unchanged request, focus the first decision, and restore the prior composer focus after resolution | alert-dialog keyboard accessibility contract | Codex implementation assistant | `src/ui/dom-renderer.ts`, fake-DOM and real-browser tests |
54
+ | 2026-07-12 | Add a dependency-free real-browser evidence runner with fresh screenshot integrity checks | automated desktop/narrow layout and accessibility evidence | Codex implementation assistant | `scripts/run-ui-browser-smoke.mjs`, `docs/compliance/ui-browser-smoke.json` |
55
+
56
+ ## AI assistance
57
+
58
+ - Models/tools used: OpenAI Codex coding agent, local PowerShell, TypeScript, tsup, Node test runner, and installed Google Chrome 150 in headless audit mode.
59
+ - Prompt or retained prompt-summary path: active Xeno proprietary migration goal and `switch-to-proprietary.md`.
60
+ - Confirmation that no third-party source entered the prompt: no React or Electron implementation source was supplied or inspected; public platform contracts and Xeno-owned behavior were used.
61
+ - Human review performed: pending.
62
+
63
+ ## Verification evidence
64
+
65
+ - Focused tests: 7/7 pass across controller projection, accessible semantic view, permission identity, cancel/retry, markdown URL safety, multiline DOM interaction, explicit IPC injection, and desktop-capture injection.
66
+ - Full SDK regression: 501 passed, 2 platform-dependent skips, 0 failures.
67
+ - Type verification: source and test TypeScript checks pass.
68
+ - Build/package: `dist/ui/index.js` is 17,037 bytes and `dist/ui/index.d.ts` is 12,673 bytes; release package smoke passes.
69
+ - Dependency proof: React, React DOM, React types, and Electron are absent from package metadata, lock graph, installed graph, source runtime imports, UI bundle, and generated ownership reports.
70
+ - Ownership proof: SDK ownership audit reports 0 violations after policy revision 7.
71
+ - Source hashes:
72
+ - `controller.ts`: `c9a5344d94fc6ef16f741cc3d5b8da85a28cee364b4364702ace28b8834aa0d0`
73
+ - `view-model.ts`: `383e137272f231cf2d3eea13fffd45e7e9aac8ee2b0b3c17d91dc2e89da82916`
74
+ - `dom-renderer.ts`: `3c1aa9c75b08842a934d6ce17ea8f80276d402cb4b64467b824332d1fddb0b48`
75
+ - `types.ts`: `c127a4e06d7cba5e2a1459334ee934adf0edf86c3b41fcc8192f2bd445c4bb0c`
76
+ - `markdown.ts`: `ec4d45a21b3b27b2ffb149a398c504584b6e66adc5648bbd11395032b0692819`
77
+ - `styles.ts`: `5819fb44aa8aef3551c5ec0a225244f82a0e57aa6c74ea1b15431cb79bff548f`
78
+ - Consumer scan: no first-party imports of the former React UI were found in the SDK, CLI, Hub, or xeno-use trees.
79
+ - Automated browser QA: Google Chrome 150 passes 15 desktop and 16 narrow/mobile-breakpoint checks covering labelled/live semantics, viewport containment, document overflow, bounded multiline growth, plain Enter editing, Ctrl+Enter submission, permission dialog description/focus/restore, WCAG AA text contrast, 40 px control targets, timeline/composer separation, and mobile stacking. The report is `docs/compliance/ui-browser-smoke.json`.
80
+ - Screenshot evidence: desktop `ui-browser-desktop.png` is 1280x800 with SHA-256 `f82a80ce5b3e29acae0b446a7119ff2b6ff0b07eeabe19cba3d84e5189d8d217`; narrow/mobile-breakpoint `ui-browser-mobile.png` is 500x844 with SHA-256 `538f8ec9bc04c515e87c421dffc3ea840d2fe24a11d433409b5839f8ff587a55`. The runner removes prior screenshots and rejects missing, stale-dimension, clipped-viewport, or failed-check evidence.
81
+ - Browser evidence boundary: the in-app browser binding was unavailable, so the audit used the installed system browser. Automated Chrome evidence does not represent human Electron, physical mobile-device, high-contrast-mode, or screen-reader approval.
82
+
83
+ ## Open legal or provenance questions
84
+
85
+ - Independent accessibility and DOM security review is pending.
86
+ - Human Electron desktop, physical mobile-device, high-contrast, keyboard, and screen-reader smoke is pending.
87
+ - Contributor disclosures and counsel disposition are pending.
88
+ - The package version for the breaking UI and explicit host-injection migration must be approved before publication.
89
+
90
+ ## Handoff
91
+
92
+ - Engineering implementation complete: yes
93
+ - Evidence complete: no
94
+ - Capability gate may be marked achieved: no
95
+ - Ready for independent provenance review: after human visual/accessibility smoke and contributor disclosure collection
96
+ - Author/date: Codex implementation assistant, 2026-07-12
@@ -0,0 +1,46 @@
1
+ # Independent Provenance Review: Xeno Framework-Neutral UI
2
+
3
+ ## Review identity
4
+
5
+ - Component: Xeno-owned agent UI controller, semantic view model, DOM renderer, and explicit host adapters
6
+ - Replacement milestone: PROPRIETARY-UI-1
7
+ - Implementation record path: `ownership/evidence/PROPRIETARY-UI-1/implementation-record.md`
8
+ - Candidate revision: `87ae64b55aa1b8c2e126294e717b229e0945db65` plus recorded working-tree changes
9
+ - Reviewer: pending
10
+ - Domain reviewer (required): pending accessibility/browser security reviewer
11
+ - Review date (UTC): pending
12
+ - Reviewer independent of implementation: pending
13
+
14
+ ## Evidence checks
15
+
16
+ - [ ] Behavioral contract predates or is independent from implementation work.
17
+ - [ ] Normative and public sources are listed with revisions and evidence paths.
18
+ - [ ] Contributor source-exposure disclosures are complete.
19
+ - [ ] No copied source, comments, tests, identifiers, non-normative constants, or distinctive internal structure were found.
20
+ - [ ] Controller lifecycle, permission restoration, and callback restoration are independently reviewed.
21
+ - [ ] DOM rendering has no HTML injection or active-URL bypass.
22
+ - [ ] Accessibility roles, names, focus, keyboard behavior, live regions, contrast, and reduced motion pass human review.
23
+ - [ ] Desktop and mobile visual smoke passes in supported browser/Electron hosts.
24
+ - [ ] React, React DOM, React types, and Electron package edges are absent from source, lock, bundle, package, and installed graph.
25
+ - [ ] Migration/versioning and first-party consumer disposition are approved.
26
+ - [ ] Licenses, trademarks, platform terms, and public ownership language have an explicit disposition.
27
+
28
+ ## Verification summary
29
+
30
+ | Gate | Evidence | Result | Notes |
31
+ | --- | --- | --- | --- |
32
+ | Controller and semantic contract | focused Node tests | engineering pass | streaming, tools, cancel, retry, permission identity, and disposal covered |
33
+ | DOM interaction and accessibility structure | owned in-memory DOM fixture | engineering pass | browser screenshot and screen-reader review pending |
34
+ | Framework/runtime removal | package, lock, source, bundle, installed graph, ownership reports | engineering pass | React/React DOM/Electron absent |
35
+ | SDK regression | full Node suite | engineering pass | 501 pass, 2 platform skips, 0 failures |
36
+ | Package surface | build, dry-run, release smoke | engineering pass | UI bundle 16.01 KiB; clean package smoke passes |
37
+ | Migration | next-major migration guide | engineering pass | release/version owner approval pending |
38
+
39
+ ## Decision
40
+
41
+ - Engineering provenance decision: needs-review
42
+ - Capability gate may be marked achieved: no
43
+ - Public clean-room/proprietary claim approved by this review: no
44
+ - Required follow-up: run human browser/Electron desktop and mobile visual/accessibility smoke, collect contributor disclosures, assign an independent reviewer, approve the breaking release version, and attach counsel disposition.
45
+ - Reviewer signature/date: pending
46
+ - Counsel approval reference: pending
@@ -0,0 +1,232 @@
1
+ {
2
+ "$schema": "./ownership-policy.schema.json",
3
+ "schemaVersion": 1,
4
+ "policyId": "xeno-agent-proprietary-v1",
5
+ "policyRevision": 12,
6
+ "canonicalLocation": "xeno-agent-sdk/ownership/ownership-policy.json",
7
+ "mirrorLocations": [
8
+ "xeno-agent-cli/apps/xeno-agent-cli/ownership/ownership-policy.json"
9
+ ],
10
+ "targetLevel": "P2",
11
+ "enforcedLevel": "pre-P1",
12
+ "xenoPackagePrefixes": [
13
+ "@xeno-corporation/"
14
+ ],
15
+ "repositories": {
16
+ "sdk": {
17
+ "label": "@xenosystem/agent-sdk",
18
+ "manifestPaths": [
19
+ "package.json"
20
+ ],
21
+ "sourceRoots": [
22
+ "src"
23
+ ],
24
+ "reportDirectory": "docs/compliance"
25
+ },
26
+ "cli": {
27
+ "label": "@xenosystem/agent-cli",
28
+ "manifestPaths": [
29
+ "package.json",
30
+ "apps/xeno-agent-cli/package.json"
31
+ ],
32
+ "sourceRoots": [
33
+ "apps/xeno-agent-cli/src",
34
+ "src"
35
+ ],
36
+ "additionalOwnedSourceRoots": [
37
+ "../xeno-agent-sdk/src"
38
+ ],
39
+ "reportDirectory": "docs/compliance"
40
+ }
41
+ },
42
+ "runtimeComponents": [
43
+ {
44
+ "name": "chalk",
45
+ "classification": "temporary-runtime",
46
+ "license": "MIT",
47
+ "usedBy": ["sdk", "cli"],
48
+ "replacement": "xeno-ansi",
49
+ "expiresAtMilestone": "PROPRIETARY-ANSI-1",
50
+ "allowedThrough": "pre-P1"
51
+ },
52
+ {
53
+ "name": "microsoft-mxc-native-assets",
54
+ "classification": "external-runtime",
55
+ "license": "MIT",
56
+ "usedBy": ["sdk", "cli"],
57
+ "replacement": "release-certified-platform-containment-adapter",
58
+ "expiresAtMilestone": "never",
59
+ "artifactPathPrefixes": ["native/mxc/"]
60
+ },
61
+ {
62
+ "name": "undici",
63
+ "classification": "external-runtime",
64
+ "license": "MIT",
65
+ "usedBy": ["cli"],
66
+ "replacement": "standalone-runtime-network-boundary",
67
+ "expiresAtMilestone": "PROPRIETARY-RUNTIME-1",
68
+ "allowedThrough": "P2"
69
+ }
70
+ ],
71
+ "builtinComponents": [
72
+ {
73
+ "name": "node:sqlite",
74
+ "classification": "external-runtime",
75
+ "usedBy": ["sdk", "cli"],
76
+ "replacement": "standalone-runtime-decision",
77
+ "expiresAtMilestone": "PROPRIETARY-RUNTIME-1",
78
+ "allowedThrough": "P2"
79
+ }
80
+ ],
81
+ "platformBoundaries": [
82
+ {
83
+ "name": "node>=20",
84
+ "classification": "external-runtime",
85
+ "usedBy": ["sdk", "cli"],
86
+ "replacement": "standalone-runtime-decision",
87
+ "expiresAtMilestone": "PROPRIETARY-RUNTIME-1",
88
+ "allowedThrough": "P2"
89
+ },
90
+ {
91
+ "name": "windows-kernel32",
92
+ "classification": "platform-api",
93
+ "usedBy": ["sdk", "cli"],
94
+ "replacement": "operating-system-boundary",
95
+ "expiresAtMilestone": "never"
96
+ },
97
+ {
98
+ "name": "posix-libc",
99
+ "classification": "platform-api",
100
+ "usedBy": ["sdk", "cli"],
101
+ "replacement": "operating-system-boundary",
102
+ "expiresAtMilestone": "never"
103
+ }
104
+ ],
105
+ "developmentPolicy": {
106
+ "classification": "build-only"
107
+ },
108
+ "cleanRoomProtocol": {
109
+ "guide": "ownership/CLEAN_ROOM_CONTRIBUTOR_GUIDE.md",
110
+ "implementationRecordTemplate": "ownership/templates/clean-room-implementation-record.md",
111
+ "provenanceReviewTemplate": "ownership/templates/provenance-review.md",
112
+ "status": "engineering-draft",
113
+ "counselApprovalRequired": true
114
+ },
115
+ "testOracles": [
116
+ {
117
+ "name": "node:zlib",
118
+ "classification": "test-oracle",
119
+ "usedBy": ["sdk"],
120
+ "replacement": "xeno-deflate",
121
+ "expiresAtMilestone": "never"
122
+ },
123
+ {
124
+ "name": "libwebp",
125
+ "classification": "test-oracle",
126
+ "usedBy": ["sdk"],
127
+ "replacement": "xeno-vp8-webp",
128
+ "expiresAtMilestone": "never"
129
+ },
130
+ {
131
+ "name": "libvpx",
132
+ "classification": "test-oracle",
133
+ "usedBy": ["sdk"],
134
+ "replacement": "xeno-vp8-webp",
135
+ "expiresAtMilestone": "never"
136
+ },
137
+ {
138
+ "name": "Pillow",
139
+ "classification": "test-oracle",
140
+ "usedBy": ["sdk"],
141
+ "replacement": "xeno-owned-media",
142
+ "expiresAtMilestone": "never"
143
+ },
144
+ {
145
+ "name": "ImageMagick",
146
+ "classification": "test-oracle",
147
+ "usedBy": ["sdk"],
148
+ "replacement": "xeno-owned-media",
149
+ "expiresAtMilestone": "never"
150
+ },
151
+ {
152
+ "name": "libpng-PNGSuite",
153
+ "classification": "test-oracle",
154
+ "usedBy": ["sdk"],
155
+ "replacement": "xeno-owned-media",
156
+ "expiresAtMilestone": "never"
157
+ },
158
+ {
159
+ "name": "libjpeg-turbo-testimages",
160
+ "classification": "test-oracle",
161
+ "usedBy": ["sdk"],
162
+ "replacement": "xeno-owned-media",
163
+ "expiresAtMilestone": "never"
164
+ },
165
+ {
166
+ "name": "libwebp-test-data",
167
+ "classification": "test-oracle",
168
+ "usedBy": ["sdk"],
169
+ "replacement": "xeno-owned-media",
170
+ "expiresAtMilestone": "never"
171
+ },
172
+ {
173
+ "name": "W3C-SVG-test-suite",
174
+ "classification": "test-oracle",
175
+ "usedBy": ["sdk"],
176
+ "replacement": "xeno-owned-media",
177
+ "expiresAtMilestone": "never"
178
+ }
179
+ ],
180
+ "forbiddenPackages": [
181
+ "@napi-rs/canvas",
182
+ "electron",
183
+ "node-addon-api",
184
+ "node-pty",
185
+ "react",
186
+ "react-dom"
187
+ ],
188
+ "capabilityGates": [
189
+ {
190
+ "id": "owned-ansi",
191
+ "requiredFor": "P1",
192
+ "achieved": false,
193
+ "evidence": "PROPRIETARY-ANSI-1"
194
+ },
195
+ {
196
+ "id": "owned-command-runtime",
197
+ "requiredFor": "P1",
198
+ "achieved": false,
199
+ "evidence": "PROPRIETARY-COMMAND-1"
200
+ },
201
+ {
202
+ "id": "owned-pty",
203
+ "requiredFor": "P1",
204
+ "achieved": false,
205
+ "evidence": "PROPRIETARY-PTY-1"
206
+ },
207
+ {
208
+ "id": "owned-framework-neutral-ui",
209
+ "requiredFor": "P2",
210
+ "achieved": false,
211
+ "evidence": "PROPRIETARY-UI-1"
212
+ },
213
+ {
214
+ "id": "owned-media-parity",
215
+ "requiredFor": "P2",
216
+ "achieved": false,
217
+ "evidence": "PROPRIETARY-MEDIA-1"
218
+ },
219
+ {
220
+ "id": "owned-standalone-runtime",
221
+ "requiredFor": "P3",
222
+ "achieved": false,
223
+ "evidence": "PROPRIETARY-RUNTIME-1"
224
+ },
225
+ {
226
+ "id": "owned-development-toolchain",
227
+ "requiredFor": "P4",
228
+ "achieved": false,
229
+ "evidence": "PROPRIETARY-TOOLCHAIN-1"
230
+ }
231
+ ]
232
+ }
@@ -0,0 +1,192 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://xenostudio.ai/schemas/ownership-policy-v1.json",
4
+ "title": "Xeno ownership policy",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "policyId",
10
+ "policyRevision",
11
+ "canonicalLocation",
12
+ "targetLevel",
13
+ "enforcedLevel",
14
+ "xenoPackagePrefixes",
15
+ "repositories",
16
+ "runtimeComponents",
17
+ "builtinComponents",
18
+ "platformBoundaries",
19
+ "developmentPolicy",
20
+ "cleanRoomProtocol",
21
+ "forbiddenPackages",
22
+ "capabilityGates"
23
+ ],
24
+ "properties": {
25
+ "$schema": { "type": "string" },
26
+ "schemaVersion": { "const": 1 },
27
+ "policyId": { "type": "string", "minLength": 1 },
28
+ "policyRevision": { "type": "integer", "minimum": 1 },
29
+ "canonicalLocation": { "type": "string", "minLength": 1 },
30
+ "mirrorLocations": {
31
+ "type": "array",
32
+ "items": { "type": "string", "minLength": 1 },
33
+ "uniqueItems": true
34
+ },
35
+ "targetLevel": { "enum": ["P1", "P2", "P3", "P4"] },
36
+ "enforcedLevel": { "enum": ["pre-P1", "P1", "P2", "P3", "P4"] },
37
+ "xenoPackagePrefixes": {
38
+ "type": "array",
39
+ "minItems": 1,
40
+ "items": { "type": "string", "minLength": 1 },
41
+ "uniqueItems": true
42
+ },
43
+ "repositories": {
44
+ "type": "object",
45
+ "minProperties": 1,
46
+ "additionalProperties": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["label", "manifestPaths", "sourceRoots", "reportDirectory"],
50
+ "properties": {
51
+ "label": { "type": "string", "minLength": 1 },
52
+ "manifestPaths": {
53
+ "type": "array",
54
+ "minItems": 1,
55
+ "items": { "type": "string", "minLength": 1 },
56
+ "uniqueItems": true
57
+ },
58
+ "sourceRoots": {
59
+ "type": "array",
60
+ "minItems": 1,
61
+ "items": { "type": "string", "minLength": 1 },
62
+ "uniqueItems": true
63
+ },
64
+ "additionalOwnedSourceRoots": {
65
+ "type": "array",
66
+ "minItems": 1,
67
+ "items": { "type": "string", "minLength": 1 },
68
+ "uniqueItems": true
69
+ },
70
+ "reportDirectory": { "type": "string", "minLength": 1 }
71
+ }
72
+ }
73
+ },
74
+ "runtimeComponents": {
75
+ "type": "array",
76
+ "items": { "$ref": "#/$defs/component" }
77
+ },
78
+ "builtinComponents": {
79
+ "type": "array",
80
+ "items": { "$ref": "#/$defs/component" }
81
+ },
82
+ "platformBoundaries": {
83
+ "type": "array",
84
+ "items": { "$ref": "#/$defs/platformBoundary" }
85
+ },
86
+ "developmentPolicy": {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "required": ["classification"],
90
+ "properties": {
91
+ "classification": { "const": "build-only" }
92
+ }
93
+ },
94
+ "cleanRoomProtocol": {
95
+ "type": "object",
96
+ "additionalProperties": false,
97
+ "required": [
98
+ "guide",
99
+ "implementationRecordTemplate",
100
+ "provenanceReviewTemplate",
101
+ "status",
102
+ "counselApprovalRequired"
103
+ ],
104
+ "properties": {
105
+ "guide": { "type": "string", "minLength": 1 },
106
+ "implementationRecordTemplate": { "type": "string", "minLength": 1 },
107
+ "provenanceReviewTemplate": { "type": "string", "minLength": 1 },
108
+ "status": { "enum": ["engineering-draft", "counsel-approved"] },
109
+ "counselApprovalRequired": { "type": "boolean" }
110
+ }
111
+ },
112
+ "testOracles": {
113
+ "type": "array",
114
+ "items": { "$ref": "#/$defs/component" }
115
+ },
116
+ "forbiddenPackages": {
117
+ "type": "array",
118
+ "items": { "type": "string", "minLength": 1 },
119
+ "uniqueItems": true
120
+ },
121
+ "capabilityGates": {
122
+ "type": "array",
123
+ "items": {
124
+ "type": "object",
125
+ "additionalProperties": false,
126
+ "required": ["id", "requiredFor", "achieved", "evidence"],
127
+ "properties": {
128
+ "id": { "type": "string", "minLength": 1 },
129
+ "requiredFor": { "enum": ["P1", "P2", "P3", "P4"] },
130
+ "achieved": { "type": "boolean" },
131
+ "evidence": { "type": "string", "minLength": 1 }
132
+ }
133
+ }
134
+ }
135
+ },
136
+ "$defs": {
137
+ "classification": {
138
+ "enum": [
139
+ "xeno-owned",
140
+ "platform-api",
141
+ "external-runtime",
142
+ "build-only",
143
+ "test-oracle",
144
+ "temporary-runtime",
145
+ "forbidden"
146
+ ]
147
+ },
148
+ "component": {
149
+ "type": "object",
150
+ "additionalProperties": false,
151
+ "required": ["name", "classification", "usedBy", "replacement", "expiresAtMilestone"],
152
+ "properties": {
153
+ "name": { "type": "string", "minLength": 1 },
154
+ "classification": { "$ref": "#/$defs/classification" },
155
+ "license": { "type": "string" },
156
+ "usedBy": {
157
+ "type": "array",
158
+ "minItems": 1,
159
+ "items": { "type": "string", "minLength": 1 },
160
+ "uniqueItems": true
161
+ },
162
+ "replacement": { "type": "string", "minLength": 1 },
163
+ "expiresAtMilestone": { "type": "string", "minLength": 1 },
164
+ "allowedThrough": { "enum": ["pre-P1", "P1", "P2", "P3"] },
165
+ "artifactPathPrefixes": {
166
+ "type": "array",
167
+ "minItems": 1,
168
+ "items": { "type": "string", "minLength": 1 },
169
+ "uniqueItems": true
170
+ }
171
+ }
172
+ },
173
+ "platformBoundary": {
174
+ "type": "object",
175
+ "additionalProperties": false,
176
+ "required": ["name", "classification", "usedBy", "replacement", "expiresAtMilestone"],
177
+ "properties": {
178
+ "name": { "type": "string", "minLength": 1 },
179
+ "classification": { "$ref": "#/$defs/classification" },
180
+ "usedBy": {
181
+ "type": "array",
182
+ "minItems": 1,
183
+ "items": { "type": "string", "minLength": 1 },
184
+ "uniqueItems": true
185
+ },
186
+ "replacement": { "type": "string", "minLength": 1 },
187
+ "expiresAtMilestone": { "type": "string", "minLength": 1 },
188
+ "allowedThrough": { "enum": ["pre-P1", "P1", "P2", "P3"] }
189
+ }
190
+ }
191
+ }
192
+ }