@zenalexa/unicli 0.224.1 → 0.225.1

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 (256) hide show
  1. package/AGENTS.md +5 -5
  2. package/README.md +92 -92
  3. package/README.zh-CN.md +69 -69
  4. package/dist/adapters/_electron/desktop-shared.d.ts.map +1 -1
  5. package/dist/adapters/_electron/desktop-shared.js +2 -1
  6. package/dist/adapters/_electron/desktop-shared.js.map +1 -1
  7. package/dist/adapters/_electron/shared.d.ts +6 -0
  8. package/dist/adapters/_electron/shared.d.ts.map +1 -1
  9. package/dist/adapters/_electron/shared.js +9 -0
  10. package/dist/adapters/_electron/shared.js.map +1 -1
  11. package/dist/adapters/antigravity/extra.js +4 -1
  12. package/dist/adapters/antigravity/extra.js.map +1 -1
  13. package/dist/adapters/chatwise/extra.js +4 -1
  14. package/dist/adapters/chatwise/extra.js.map +1 -1
  15. package/dist/adapters/codex/codex.js +3 -1
  16. package/dist/adapters/codex/codex.js.map +1 -1
  17. package/dist/adapters/codex/extra.js +4 -1
  18. package/dist/adapters/codex/extra.js.map +1 -1
  19. package/dist/adapters/codex/projects.d.ts.map +1 -1
  20. package/dist/adapters/codex/projects.js +3 -1
  21. package/dist/adapters/codex/projects.js.map +1 -1
  22. package/dist/adapters/cursor/cursor.js +6 -1
  23. package/dist/adapters/cursor/cursor.js.map +1 -1
  24. package/dist/adapters/discord-app/discord-app.js +10 -1
  25. package/dist/adapters/discord-app/discord-app.js.map +1 -1
  26. package/dist/adapters/notion-app/notion-app.js +11 -1
  27. package/dist/adapters/notion-app/notion-app.js.map +1 -1
  28. package/dist/adapters/spotify/api.js +36 -6
  29. package/dist/adapters/spotify/api.js.map +1 -1
  30. package/dist/adapters/xiaohongshu/browser-state.d.ts +2 -1
  31. package/dist/adapters/xiaohongshu/browser-state.d.ts.map +1 -1
  32. package/dist/adapters/xiaohongshu/browser-state.js +56 -2
  33. package/dist/adapters/xiaohongshu/browser-state.js.map +1 -1
  34. package/dist/adapters/xiaohongshu/feed.d.ts +24 -0
  35. package/dist/adapters/xiaohongshu/feed.d.ts.map +1 -0
  36. package/dist/adapters/xiaohongshu/feed.js +82 -0
  37. package/dist/adapters/xiaohongshu/feed.js.map +1 -0
  38. package/dist/adapters/xueqiu/extra.js +2 -2
  39. package/dist/adapters/xueqiu/extra.js.map +1 -1
  40. package/dist/browser/cdp-client.d.ts +15 -1
  41. package/dist/browser/cdp-client.d.ts.map +1 -1
  42. package/dist/browser/cdp-client.js +45 -16
  43. package/dist/browser/cdp-client.js.map +1 -1
  44. package/dist/browser/daemon.js +29 -7
  45. package/dist/browser/daemon.js.map +1 -1
  46. package/dist/browser/launcher.d.ts.map +1 -1
  47. package/dist/browser/launcher.js +22 -8
  48. package/dist/browser/launcher.js.map +1 -1
  49. package/dist/browser/local-profiles.d.ts +2 -0
  50. package/dist/browser/local-profiles.d.ts.map +1 -1
  51. package/dist/browser/local-profiles.js +42 -2
  52. package/dist/browser/local-profiles.js.map +1 -1
  53. package/dist/browser/page.d.ts +2 -2
  54. package/dist/browser/page.d.ts.map +1 -1
  55. package/dist/browser/page.js +2 -2
  56. package/dist/browser/page.js.map +1 -1
  57. package/dist/browser/protocol.d.ts +7 -0
  58. package/dist/browser/protocol.d.ts.map +1 -1
  59. package/dist/browser/protocol.js +5 -0
  60. package/dist/browser/protocol.js.map +1 -1
  61. package/dist/cli.d.ts.map +1 -1
  62. package/dist/cli.js +4 -3
  63. package/dist/cli.js.map +1 -1
  64. package/dist/commands/architecture.d.ts +3 -1
  65. package/dist/commands/architecture.d.ts.map +1 -1
  66. package/dist/commands/architecture.js +13 -5
  67. package/dist/commands/architecture.js.map +1 -1
  68. package/dist/commands/browser/index.d.ts.map +1 -1
  69. package/dist/commands/browser/index.js +26 -4
  70. package/dist/commands/browser/index.js.map +1 -1
  71. package/dist/commands/delivery.d.ts.map +1 -1
  72. package/dist/commands/delivery.js.map +1 -1
  73. package/dist/commands/describe.d.ts.map +1 -1
  74. package/dist/commands/describe.js +104 -9
  75. package/dist/commands/describe.js.map +1 -1
  76. package/dist/commands/dispatch.d.ts.map +1 -1
  77. package/dist/commands/dispatch.js +3 -13
  78. package/dist/commands/dispatch.js.map +1 -1
  79. package/dist/commands/do.d.ts +16 -13
  80. package/dist/commands/do.d.ts.map +1 -1
  81. package/dist/commands/do.js +72 -18
  82. package/dist/commands/do.js.map +1 -1
  83. package/dist/commands/social.d.ts.map +1 -1
  84. package/dist/commands/social.js +3 -13
  85. package/dist/commands/social.js.map +1 -1
  86. package/dist/core/architecture-tree.d.ts +26 -6
  87. package/dist/core/architecture-tree.d.ts.map +1 -1
  88. package/dist/core/architecture-tree.js +184 -40
  89. package/dist/core/architecture-tree.js.map +1 -1
  90. package/dist/core/capability-matrix.d.ts +63 -0
  91. package/dist/core/capability-matrix.d.ts.map +1 -0
  92. package/dist/core/capability-matrix.js +316 -0
  93. package/dist/core/capability-matrix.js.map +1 -0
  94. package/dist/core/command-contract-lint.d.ts.map +1 -1
  95. package/dist/core/command-contract-lint.js +3 -1
  96. package/dist/core/command-contract-lint.js.map +1 -1
  97. package/dist/core/command-contract.d.ts +10 -3
  98. package/dist/core/command-contract.d.ts.map +1 -1
  99. package/dist/core/command-contract.js +87 -5
  100. package/dist/core/command-contract.js.map +1 -1
  101. package/dist/discovery/aliases.d.ts.map +1 -1
  102. package/dist/discovery/aliases.js +26 -0
  103. package/dist/discovery/aliases.js.map +1 -1
  104. package/dist/discovery/core-catalog.d.ts +1 -0
  105. package/dist/discovery/core-catalog.d.ts.map +1 -1
  106. package/dist/discovery/core-catalog.js +22 -5
  107. package/dist/discovery/core-catalog.js.map +1 -1
  108. package/dist/discovery/intents.d.ts +31 -4
  109. package/dist/discovery/intents.d.ts.map +1 -1
  110. package/dist/discovery/intents.js +166 -3
  111. package/dist/discovery/intents.js.map +1 -1
  112. package/dist/discovery/loader.d.ts.map +1 -1
  113. package/dist/discovery/loader.js +3 -0
  114. package/dist/discovery/loader.js.map +1 -1
  115. package/dist/discovery/search.d.ts.map +1 -1
  116. package/dist/discovery/search.js +10 -1
  117. package/dist/discovery/search.js.map +1 -1
  118. package/dist/engine/cascade.d.ts.map +1 -1
  119. package/dist/engine/cascade.js +21 -25
  120. package/dist/engine/cascade.js.map +1 -1
  121. package/dist/engine/chromium-cookies.d.ts +27 -0
  122. package/dist/engine/chromium-cookies.d.ts.map +1 -1
  123. package/dist/engine/chromium-cookies.js +53 -14
  124. package/dist/engine/chromium-cookies.js.map +1 -1
  125. package/dist/engine/cookie-capture.d.ts +30 -0
  126. package/dist/engine/cookie-capture.d.ts.map +1 -0
  127. package/dist/engine/cookie-capture.js +104 -0
  128. package/dist/engine/cookie-capture.js.map +1 -0
  129. package/dist/engine/cookie-extractor.d.ts.map +1 -1
  130. package/dist/engine/cookie-extractor.js +4 -12
  131. package/dist/engine/cookie-extractor.js.map +1 -1
  132. package/dist/engine/cookie-refresh.d.ts +59 -8
  133. package/dist/engine/cookie-refresh.d.ts.map +1 -1
  134. package/dist/engine/cookie-refresh.js +80 -58
  135. package/dist/engine/cookie-refresh.js.map +1 -1
  136. package/dist/engine/cookie-source.d.ts +110 -0
  137. package/dist/engine/cookie-source.d.ts.map +1 -0
  138. package/dist/engine/cookie-source.js +207 -0
  139. package/dist/engine/cookie-source.js.map +1 -0
  140. package/dist/engine/cookies.d.ts +37 -25
  141. package/dist/engine/cookies.d.ts.map +1 -1
  142. package/dist/engine/cookies.js +58 -157
  143. package/dist/engine/cookies.js.map +1 -1
  144. package/dist/engine/delivery/index.d.ts +2 -1
  145. package/dist/engine/delivery/index.d.ts.map +1 -1
  146. package/dist/engine/delivery/index.js +2 -1
  147. package/dist/engine/delivery/index.js.map +1 -1
  148. package/dist/engine/delivery/spec.d.ts +44 -0
  149. package/dist/engine/delivery/spec.d.ts.map +1 -0
  150. package/dist/engine/delivery/spec.js +82 -0
  151. package/dist/engine/delivery/spec.js.map +1 -0
  152. package/dist/engine/executor.d.ts +17 -6
  153. package/dist/engine/executor.d.ts.map +1 -1
  154. package/dist/engine/executor.js +131 -68
  155. package/dist/engine/executor.js.map +1 -1
  156. package/dist/engine/kernel/stages.d.ts.map +1 -1
  157. package/dist/engine/kernel/stages.js +14 -4
  158. package/dist/engine/kernel/stages.js.map +1 -1
  159. package/dist/engine/objective/catalog.d.ts +23 -0
  160. package/dist/engine/objective/catalog.d.ts.map +1 -0
  161. package/dist/engine/objective/catalog.js +42 -0
  162. package/dist/engine/objective/catalog.js.map +1 -0
  163. package/dist/engine/objective/delivery.d.ts +18 -0
  164. package/dist/engine/objective/delivery.d.ts.map +1 -0
  165. package/dist/engine/objective/delivery.js +64 -0
  166. package/dist/engine/objective/delivery.js.map +1 -0
  167. package/dist/engine/objective/index.d.ts +20 -0
  168. package/dist/engine/objective/index.d.ts.map +1 -0
  169. package/dist/engine/objective/index.js +20 -0
  170. package/dist/engine/objective/index.js.map +1 -0
  171. package/dist/engine/objective/media-playback.d.ts +17 -0
  172. package/dist/engine/objective/media-playback.d.ts.map +1 -0
  173. package/dist/engine/objective/media-playback.js +186 -0
  174. package/dist/engine/objective/media-playback.js.map +1 -0
  175. package/dist/engine/objective/output.d.ts +20 -0
  176. package/dist/engine/objective/output.d.ts.map +1 -0
  177. package/dist/engine/objective/output.js +88 -0
  178. package/dist/engine/objective/output.js.map +1 -0
  179. package/dist/engine/objective/planner.d.ts +17 -0
  180. package/dist/engine/objective/planner.d.ts.map +1 -0
  181. package/dist/engine/objective/planner.js +60 -0
  182. package/dist/engine/objective/planner.js.map +1 -0
  183. package/dist/engine/objective/types.d.ts +66 -0
  184. package/dist/engine/objective/types.d.ts.map +1 -0
  185. package/dist/engine/objective/types.js +16 -0
  186. package/dist/engine/objective/types.js.map +1 -0
  187. package/dist/engine/runtime.d.ts.map +1 -1
  188. package/dist/engine/runtime.js +9 -4
  189. package/dist/engine/runtime.js.map +1 -1
  190. package/dist/engine/step-observer.d.ts +62 -0
  191. package/dist/engine/step-observer.d.ts.map +1 -0
  192. package/dist/engine/step-observer.js +38 -0
  193. package/dist/engine/step-observer.js.map +1 -0
  194. package/dist/engine/steps/browser-helpers.d.ts.map +1 -1
  195. package/dist/engine/steps/browser-helpers.js +36 -8
  196. package/dist/engine/steps/browser-helpers.js.map +1 -1
  197. package/dist/engine/steps/fetch-text.d.ts.map +1 -1
  198. package/dist/engine/steps/fetch-text.js +106 -33
  199. package/dist/engine/steps/fetch-text.js.map +1 -1
  200. package/dist/engine/steps/fetch.d.ts +20 -0
  201. package/dist/engine/steps/fetch.d.ts.map +1 -1
  202. package/dist/engine/steps/fetch.js.map +1 -1
  203. package/dist/engine/steps/index.d.ts +2 -0
  204. package/dist/engine/steps/index.d.ts.map +1 -1
  205. package/dist/engine/steps/index.js +2 -0
  206. package/dist/engine/steps/index.js.map +1 -1
  207. package/dist/engine/steps/split-text.d.ts +26 -0
  208. package/dist/engine/steps/split-text.d.ts.map +1 -0
  209. package/dist/engine/steps/split-text.js +89 -0
  210. package/dist/engine/steps/split-text.js.map +1 -0
  211. package/dist/engine/steps/to-entries.d.ts +9 -0
  212. package/dist/engine/steps/to-entries.d.ts.map +1 -0
  213. package/dist/engine/steps/to-entries.js +27 -0
  214. package/dist/engine/steps/to-entries.js.map +1 -0
  215. package/dist/fast-path/handlers/discovery.d.ts.map +1 -1
  216. package/dist/fast-path/handlers/discovery.js +7 -7
  217. package/dist/fast-path/handlers/discovery.js.map +1 -1
  218. package/dist/manifest-compact.txt +3 -2
  219. package/dist/manifest.json +183 -17
  220. package/dist/mcp/tools.js +1 -1
  221. package/dist/mcp/tools.js.map +1 -1
  222. package/dist/output/auth-guidance.d.ts +17 -3
  223. package/dist/output/auth-guidance.d.ts.map +1 -1
  224. package/dist/output/auth-guidance.js +27 -3
  225. package/dist/output/auth-guidance.js.map +1 -1
  226. package/dist/output/error-map.d.ts.map +1 -1
  227. package/dist/output/error-map.js +4 -0
  228. package/dist/output/error-map.js.map +1 -1
  229. package/package.json +4 -2
  230. package/server.json +2 -2
  231. package/skills/unicli/SKILL.md +1 -1
  232. package/skills/unicli-claude-code/SKILL.md +1 -1
  233. package/skills/unicli-hermes/SKILL.md +1 -1
  234. package/src/adapters/12306/price.yaml +91 -0
  235. package/src/adapters/12306/stations.yaml +52 -0
  236. package/src/adapters/12306/trains.yaml +129 -0
  237. package/src/adapters/_electron/desktop-shared.ts +5 -1
  238. package/src/adapters/_electron/shared.ts +15 -0
  239. package/src/adapters/antigravity/extra.ts +10 -1
  240. package/src/adapters/chatwise/extra.ts +10 -1
  241. package/src/adapters/codex/codex.ts +6 -0
  242. package/src/adapters/codex/extra.ts +10 -1
  243. package/src/adapters/codex/projects.ts +9 -1
  244. package/src/adapters/cursor/cursor.ts +9 -0
  245. package/src/adapters/discord-app/discord-app.ts +16 -1
  246. package/src/adapters/macos/brightness.yaml +6 -3
  247. package/src/adapters/macos/calendar-list.yaml +9 -11
  248. package/src/adapters/macos/calendar-today.yaml +1 -1
  249. package/src/adapters/macos/safari-url.yaml +8 -4
  250. package/src/adapters/maoyan/hot.yaml +1 -1
  251. package/src/adapters/notion-app/notion-app.ts +17 -1
  252. package/src/adapters/spotify/api.ts +54 -8
  253. package/src/adapters/weibo/trending.yaml +2 -0
  254. package/src/adapters/xiaohongshu/browser-state.ts +59 -2
  255. package/src/adapters/xiaohongshu/feed.ts +103 -0
  256. package/src/adapters/xueqiu/extra.ts +5 -2
@@ -1,18 +1,19 @@
1
1
  /**
2
2
  * @owner src/core/architecture-tree.ts
3
- * @does Builds the callable Uni-CLI architecture tree and lifecycle audit from registered command contracts.
4
- * @needs src/core/command-contract, src/types
3
+ * @does Builds the callable Uni-CLI computer-control architecture tree and audit from adapter and core command contracts.
4
+ * @needs src/core/command-contract, src/discovery/core-catalog, src/types
5
5
  * @feeds src/commands/architecture.ts, tests/unit/core/architecture-tree.test.ts
6
6
  * @breaks Propagates command-contract construction errors when adapter metadata is malformed.
7
- * @invariants Command lifecycle order is stable: create, discover, invoke, observe, repair, publish.
7
+ * @invariants Computer-control order is stable: intent, select, govern, act, observe, diagnose, repair-or-reroute, deliver, expose.
8
8
  * @side-effects none
9
- * @perf O(commands) over the loaded adapter registry; allocates one inventory entry per command.
9
+ * @perf O(commands) over loaded adapter and core command registries; allocates one inventory entry per command.
10
10
  * @concurrency Pure and reentrant; no shared mutable state.
11
11
  * @test tests/unit/core/architecture-tree.test.ts
12
12
  * @stability experimental
13
13
  * @since 2026-05-26
14
14
  */
15
- import { buildCommandContract } from "./command-contract.js";
15
+ import { buildCommandContract, buildCoreCommandContract, } from "./command-contract.js";
16
+ import { buildArchitectureCapabilityMatrix, buildArchitectureWorkflowReadiness, } from "./capability-matrix.js";
16
17
  import { AdapterType } from "../types.js";
17
18
  export const COMMAND_LIFECYCLE_STEPS = [
18
19
  "create",
@@ -22,6 +23,17 @@ export const COMMAND_LIFECYCLE_STEPS = [
22
23
  "repair",
23
24
  "publish",
24
25
  ];
26
+ export const COMPUTER_CONTROL_STAGES = [
27
+ "intent",
28
+ "select",
29
+ "govern",
30
+ "act",
31
+ "observe",
32
+ "diagnose",
33
+ "repair-or-reroute",
34
+ "deliver",
35
+ "expose",
36
+ ];
25
37
  function commandRef(adapter, commandName) {
26
38
  return `${adapter.name}.${commandName}`;
27
39
  }
@@ -34,6 +46,12 @@ function isLocalComputerUseCommand(adapter, command, targetSurface) {
34
46
  capability.startsWith("compute.") ||
35
47
  capability.startsWith("visual."));
36
48
  }
49
+ function commandCapabilities(command) {
50
+ return Array.from(new Set([
51
+ ...(command.capabilities ?? []),
52
+ ...(command.minimum_capability ? [command.minimum_capability] : []),
53
+ ])).sort();
54
+ }
37
55
  function collectCommandInventory(adapters) {
38
56
  const entries = [];
39
57
  for (const adapter of adapters) {
@@ -44,35 +62,93 @@ function collectCommandInventory(adapters) {
44
62
  command,
45
63
  });
46
64
  const targetSurface = contract.effect.target_surface;
65
+ const capabilities = commandCapabilities(command);
47
66
  entries.push({
48
67
  ref: commandRef(adapter, commandName),
49
68
  site: adapter.name,
50
69
  command: commandName,
70
+ source_kind: "adapter",
51
71
  adapter_type: adapter.type,
52
72
  target_surface: targetSurface,
73
+ ...(adapter.category ? { category: adapter.category } : {}),
53
74
  ...(contract.identity.source_path
54
75
  ? { source_path: contract.identity.source_path }
55
76
  : {}),
56
77
  safety_class: contract.effect.safety_class,
78
+ operation_effect: contract.effect.operation_effect,
57
79
  ...(command.minimum_capability
58
80
  ? { minimum_capability: command.minimum_capability }
59
81
  : {}),
82
+ capabilities,
83
+ uses_browser: contract.effect.browser,
60
84
  is_local_computer_use: isLocalComputerUseCommand(adapter, command, targetSurface),
61
85
  });
62
86
  }
63
87
  }
64
88
  return entries.sort((leftEntry, rightEntry) => leftEntry.ref.localeCompare(rightEntry.ref));
65
89
  }
90
+ function isLocalComputerUseCoreCommand(command, targetSurface) {
91
+ return targetSurface === "desktop" || command.type === AdapterType.DESKTOP;
92
+ }
93
+ function collectCoreCommandInventory(coreCommands = []) {
94
+ return coreCommands.map((command) => {
95
+ const contract = buildCoreCommandContract({ command });
96
+ const targetSurface = contract.effect.target_surface;
97
+ return {
98
+ ref: `${command.site}.${command.command}`,
99
+ site: command.site,
100
+ command: command.command,
101
+ source_kind: "core",
102
+ adapter_type: command.type,
103
+ target_surface: targetSurface,
104
+ category: command.category,
105
+ ...(contract.identity.source_path
106
+ ? { source_path: contract.identity.source_path }
107
+ : {}),
108
+ safety_class: contract.effect.safety_class,
109
+ operation_effect: contract.effect.operation_effect,
110
+ capabilities: [],
111
+ uses_browser: contract.effect.browser,
112
+ is_local_computer_use: isLocalComputerUseCoreCommand(command, targetSurface),
113
+ };
114
+ });
115
+ }
116
+ function collectFullCommandInventory(input) {
117
+ return [
118
+ ...collectCommandInventory(input.adapters),
119
+ ...collectCoreCommandInventory(input.coreCommands),
120
+ ].sort((leftEntry, rightEntry) => leftEntry.ref.localeCompare(rightEntry.ref));
121
+ }
66
122
  function node(input) {
67
123
  return { ...input, children: input.children ?? [] };
68
124
  }
125
+ const CONTROL_STAGE_DESCRIPTIONS = {
126
+ intent: "Accept human or agent intent without preloading a giant tool list.",
127
+ select: "Choose the smallest operation boundary that can act on the target software.",
128
+ govern: "Evaluate permission profile, risk, capability scope, and local policy before action.",
129
+ act: "Invoke the selected software substrate through the shared kernel.",
130
+ observe: "Return data, context, retryability, timing, and evidence through one envelope.",
131
+ diagnose: "Classify failure as auth, policy, missing context, upstream drift, environment trouble, or adapter defect.",
132
+ "repair-or-reroute": "Bound the next experiment by source path, evidence, alternatives, and verification command.",
133
+ deliver: "Decide whether the objective is satisfied, still active, blocked, or exhausted.",
134
+ expose: "Expose the same operation through CLI, MCP, ACP, HTTP, docs, skills, and scripts.",
135
+ };
136
+ function controlStageNodes() {
137
+ return COMPUTER_CONTROL_STAGES.map((stage) => node({
138
+ id: `control-${stage}`,
139
+ label: stage,
140
+ kind: "control-stage",
141
+ priority: "P0",
142
+ description: CONTROL_STAGE_DESCRIPTIONS[stage],
143
+ }));
144
+ }
69
145
  function lifecycleNodes() {
70
146
  return COMMAND_LIFECYCLE_STEPS.map((step) => node({
71
147
  id: `lifecycle-${step}`,
72
148
  label: step,
73
149
  kind: "lifecycle",
74
- priority: "P0",
75
- description: `Command lifecycle step: ${step}.`,
150
+ priority: "P1",
151
+ description: `Internal authoring lifecycle step: ${step}.`,
76
152
  }));
77
153
  }
78
154
  function buildRootNode(summary) {
@@ -81,65 +157,118 @@ function buildRootNode(summary) {
81
157
  label: "Uni-CLI",
82
158
  kind: "root",
83
159
  priority: "P0",
84
- description: "Bridge between agents and websites, browsers, desktop apps, local tools, system capabilities, and protocol servers.",
160
+ description: "Universal computer-control platform for agents: intent, governed action, evidence, delivery, and repair across software substrates.",
85
161
  command_count: summary.total_commands,
86
162
  children: [
87
163
  node({
88
- id: "first-class-citizens",
89
- label: "First-class citizens",
164
+ id: "computer-control-platform",
165
+ label: "Computer-control platform",
90
166
  kind: "group",
91
167
  priority: "P0",
92
- description: "Product roots that define Uni-CLI semantics across every wrapper.",
168
+ description: "Top-level product loop: an agent controls a computer through governed, observable, repairable operations.",
169
+ command_count: summary.total_commands,
170
+ children: controlStageNodes(),
171
+ }),
172
+ node({
173
+ id: "operation-contract",
174
+ label: "Operation contract",
175
+ kind: "runtime",
176
+ priority: "P0",
177
+ description: "Agent-callable action identity, args, output, auth posture, safety, capability, source path, and repair path.",
178
+ command_count: summary.total_commands,
179
+ }),
180
+ node({
181
+ id: "control-kernel",
182
+ label: "Control kernel",
183
+ kind: "runtime",
184
+ priority: "P0",
185
+ description: "Validate, harden, authorize, invoke a substrate, observe, and envelope without wrapper-specific semantics.",
186
+ command_count: summary.total_commands,
187
+ }),
188
+ node({
189
+ id: "action-substrates",
190
+ label: "Action substrates",
191
+ kind: "group",
192
+ priority: "P0",
193
+ description: "Concrete technical boundaries below the platform: useful, swappable, and never the top-level product identity.",
194
+ command_count: summary.total_commands,
93
195
  children: [
94
196
  node({
95
- id: "command-contract",
96
- label: "Command contract",
97
- kind: "runtime",
197
+ id: "web-api-substrate",
198
+ label: "Web and API",
199
+ kind: "substrate",
98
200
  priority: "P0",
99
- description: "Site, command, args, output, auth, safety, capability, source path, and repair path.",
100
- command_count: summary.total_commands,
201
+ description: "HTTP, RSS, cookies, headers, browser-intercept flows, downloads, uploads, publishing, and extraction.",
101
202
  }),
102
203
  node({
103
- id: "invocation-kernel",
104
- label: "Invocation kernel",
105
- kind: "runtime",
204
+ id: "browser-substrate",
205
+ label: "Browser",
206
+ kind: "substrate",
106
207
  priority: "P0",
107
- description: "Validate, harden, authorize, execute, observe, and envelope.",
108
- command_count: summary.total_commands,
208
+ description: "CDP navigation, refs, DOM and accessibility snapshots, network capture, clicks, typing, screenshots, and render-aware evidence.",
109
209
  }),
110
210
  node({
111
- id: "local-computer-use",
112
- label: "Local computer use",
113
- kind: "surface",
211
+ id: "desktop-os-substrate",
212
+ label: "Desktop and OS",
213
+ kind: "substrate",
114
214
  priority: "P0",
115
- description: "Native accessibility, CDP, subprocess, and visual cascade for installed software.",
215
+ description: "Installed apps, macOS Accessibility, UIA, AT-SPI, screenshots, app actions, clipboard, calendar, brightness, and OS state.",
116
216
  command_count: summary.local_computer_use_commands,
117
217
  }),
118
218
  node({
119
- id: "evidence-loop",
120
- label: "Evidence loop",
121
- kind: "runtime",
219
+ id: "local-tool-substrate",
220
+ label: "Local tools and files",
221
+ kind: "substrate",
122
222
  priority: "P0",
123
- description: "AgentEnvelope, run traces, post-state evidence, and delivery trajectory.",
124
- command_count: summary.total_commands,
223
+ description: "Subprocess bridges, external binaries, paper/PDF workflows, media tools, developer CLIs, and file transformations.",
224
+ }),
225
+ node({
226
+ id: "protocol-substrate",
227
+ label: "Agent protocols",
228
+ kind: "substrate",
229
+ priority: "P1",
230
+ description: "MCP, ACP, Streamable HTTP, JSON streams, generated agent configs, and skills as exposure or action boundaries.",
231
+ }),
232
+ node({
233
+ id: "visual-substrate",
234
+ label: "Visual fallback",
235
+ kind: "substrate",
236
+ priority: "P2",
237
+ description: "Screenshot-driven action path, valid only when it can see, act, and verify post-state evidence.",
125
238
  }),
126
239
  ],
127
240
  }),
128
241
  node({
129
- id: "command-lifecycle",
130
- label: "Command lifecycle",
131
- kind: "group",
242
+ id: "evidence-delivery-loop",
243
+ label: "Evidence and delivery loop",
244
+ kind: "runtime",
132
245
  priority: "P0",
133
- description: "Create, discover, invoke, observe, repair, and publish operations.",
246
+ description: "AgentEnvelope, run traces, post-state evidence, objective gates, trajectory, reroute, and bounded repair.",
247
+ command_count: summary.total_commands,
248
+ }),
249
+ node({
250
+ id: "runtime-exposure",
251
+ label: "Runtime exposure",
252
+ kind: "surface",
253
+ priority: "P1",
254
+ description: "CLI, MCP, ACP, HTTP, docs, llms.txt, AGENTS.md, generated configs, and skills expose the same operation contracts.",
255
+ command_count: summary.total_commands,
256
+ }),
257
+ node({
258
+ id: "internal-authoring-cycle",
259
+ label: "Internal authoring cycle",
260
+ kind: "group",
261
+ priority: "P1",
262
+ description: "Create, discover, invoke, observe, repair, and publish operations; this is internal machinery, not product identity.",
134
263
  command_count: summary.total_commands,
135
264
  children: lifecycleNodes(),
136
265
  }),
137
266
  node({
138
- id: "second-class-surfaces",
139
- label: "Second-class surfaces",
267
+ id: "non-product-identities",
268
+ label: "Non-product identities",
140
269
  kind: "group",
141
270
  priority: "P2",
142
- description: "Important wrappers and fallbacks that must not fork command semantics.",
271
+ description: "Surfaces Uni-CLI can use or expose but must not collapse into.",
143
272
  children: [
144
273
  node({
145
274
  id: "expanded-mcp",
@@ -175,21 +304,28 @@ function buildRootNode(summary) {
175
304
  });
176
305
  }
177
306
  export function buildArchitectureTree(input) {
178
- const commandInventory = collectCommandInventory(input.adapters);
307
+ const commandInventory = collectFullCommandInventory(input);
308
+ const capabilityMatrix = buildArchitectureCapabilityMatrix(commandInventory);
309
+ const workflowReadiness = buildArchitectureWorkflowReadiness(commandInventory);
179
310
  const localComputerUseCommands = commandInventory.filter((entry) => entry.is_local_computer_use).length;
180
311
  const missingSourcePathCommands = commandInventory.filter((entry) => entry.source_path === undefined).length;
181
312
  const summary = {
182
- total_sites: input.adapters.length,
313
+ total_sites: new Set(commandInventory.map((entry) => entry.site)).size,
183
314
  total_commands: commandInventory.length,
315
+ adapter_commands: commandInventory.filter((entry) => entry.source_kind === "adapter").length,
316
+ core_commands: commandInventory.filter((entry) => entry.source_kind === "core").length,
184
317
  local_computer_use_commands: localComputerUseCommands,
185
318
  missing_source_path_commands: missingSourcePathCommands,
186
319
  };
187
320
  return {
188
321
  schema_version: "architecture-tree.v1",
322
+ control_stages: COMPUTER_CONTROL_STAGES,
189
323
  lifecycle_steps: COMMAND_LIFECYCLE_STEPS,
190
324
  summary,
191
325
  root: buildRootNode(summary),
192
326
  command_inventory: commandInventory,
327
+ capability_matrix: capabilityMatrix,
328
+ workflow_readiness: workflowReadiness,
193
329
  };
194
330
  }
195
331
  export function auditArchitectureTree(input) {
@@ -201,13 +337,21 @@ export function auditArchitectureTree(input) {
201
337
  schema_version: "architecture-audit.v1",
202
338
  total_sites: tree.summary.total_sites,
203
339
  total_commands: tree.summary.total_commands,
340
+ adapter_commands: tree.summary.adapter_commands,
341
+ core_commands: tree.summary.core_commands,
204
342
  local_computer_use_commands: tree.summary.local_computer_use_commands,
343
+ control_stages: COMPUTER_CONTROL_STAGES,
205
344
  lifecycle_steps: COMMAND_LIFECYCLE_STEPS,
345
+ capability_matrix: tree.capability_matrix,
346
+ workflow_readiness: tree.workflow_readiness,
206
347
  missing_source_paths: missingSourcePaths,
207
- second_class_surfaces: [
348
+ non_product_identities: [
208
349
  "expanded-mcp",
209
350
  "visual-fallback",
210
351
  "typescript-adapters",
352
+ "browser-automation-only",
353
+ "computer-use-sandbox-only",
354
+ "per-site-wrapper-only",
211
355
  ],
212
356
  ready_for_full_rewrite: tree.summary.total_commands > 0 && missingSourcePaths.length === 0,
213
357
  };
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-tree.js","sourceRoot":"","sources":["../../src/core/architecture-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture-tree.js","sourceRoot":"","sources":["../../src/core/architecture-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @owner src/core/capability-matrix.ts
3
+ * @does Builds live-catalog substrate and workflow readiness matrices for agent-to-computer control.
4
+ * @needs command inventory rows from src/core/architecture-tree.ts
5
+ * @feeds architecture tree/audit payloads and architecture regression tests.
6
+ * @breaks Misclassification overstates what Uni-CLI can control, especially visual or workflow coverage.
7
+ * @invariants Readiness is catalog-derived only; live verification must be represented as required next evidence, not implied success.
8
+ * @side-effects none
9
+ * @perf O(commands * surfaces + commands * workflows), bounded by catalog size.
10
+ * @concurrency pure and reentrant.
11
+ * @test tests/unit/core/capability-matrix.test.ts
12
+ * @stability experimental
13
+ * @since 2026-05-31
14
+ */
15
+ export declare const CAPABILITY_SURFACES: readonly ["web", "browser", "desktop", "system", "protocol", "bridge"];
16
+ export type ArchitectureCapabilitySurface = (typeof CAPABILITY_SURFACES)[number];
17
+ export type WorkflowReadinessStatus = "cataloged" | "partial" | "gap";
18
+ export interface CapabilityMatrixInventoryEntry {
19
+ ref: string;
20
+ site: string;
21
+ command: string;
22
+ source_kind: "adapter" | "core";
23
+ adapter_type: string;
24
+ target_surface: string;
25
+ category?: string;
26
+ source_path?: string;
27
+ safety_class: string;
28
+ operation_effect: string;
29
+ minimum_capability?: string;
30
+ capabilities: readonly string[];
31
+ uses_browser: boolean;
32
+ is_local_computer_use: boolean;
33
+ }
34
+ export interface ArchitectureCapabilityMatrixEntry {
35
+ surface: ArchitectureCapabilitySurface;
36
+ command_count: number;
37
+ adapter_commands: number;
38
+ core_commands: number;
39
+ write_commands: number;
40
+ auth_or_write_commands: number;
41
+ local_computer_use_commands: number;
42
+ source_path_coverage: {
43
+ present: number;
44
+ missing: number;
45
+ };
46
+ representative_commands: string[];
47
+ }
48
+ export interface ArchitectureWorkflowReadiness {
49
+ id: string;
50
+ label: string;
51
+ vehicle_assistant_analogy: string;
52
+ readiness: WorkflowReadinessStatus;
53
+ command_count: number;
54
+ action_command_count: number;
55
+ surfaces: ArchitectureCapabilitySurface[];
56
+ representative_commands: string[];
57
+ required_next_evidence: string[];
58
+ gap?: string;
59
+ }
60
+ export declare function surfacesForCapabilityEntry(entry: CapabilityMatrixInventoryEntry): ArchitectureCapabilitySurface[];
61
+ export declare function buildArchitectureCapabilityMatrix(entries: readonly CapabilityMatrixInventoryEntry[]): ArchitectureCapabilityMatrixEntry[];
62
+ export declare function buildArchitectureWorkflowReadiness(entries: readonly CapabilityMatrixInventoryEntry[]): ArchitectureWorkflowReadiness[];
63
+ //# sourceMappingURL=capability-matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-matrix.d.ts","sourceRoot":"","sources":["../../src/core/capability-matrix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,mBAAmB,wEAOtB,CAAC;AAEX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvC,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,6BAA6B,CAAC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,2BAA2B,EAAE,MAAM,CAAC;IACpC,oBAAoB,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,uBAAuB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,uBAAuB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,6BAA6B,EAAE,CAAC;IAC1C,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAgOD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,8BAA8B,GACpC,6BAA6B,EAAE,CAiCjC;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,SAAS,8BAA8B,EAAE,GACjD,iCAAiC,EAAE,CAoCrC;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,SAAS,8BAA8B,EAAE,GACjD,6BAA6B,EAAE,CA+BjC"}