@hellolynk-ai/codex-plugin 0.0.0-stage → 0.2.100

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 (123) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/LICENSE +92 -0
  3. package/README.md +101 -2
  4. package/bin/hellolynk-client-setup.mjs +2748 -0
  5. package/bin/hellolynk-mcp-config-shape.mjs +23 -0
  6. package/hellolynk-client-pack-manifest.json +619 -0
  7. package/hellolynk-client-pack-pin.json +4 -0
  8. package/package.json +58 -4
  9. package/plugins/hellolynk-codex/.app.json +3 -0
  10. package/plugins/hellolynk-codex/.codex-plugin/plugin.json +38 -0
  11. package/plugins/hellolynk-codex/.mcp.json +19 -0
  12. package/plugins/hellolynk-codex/assets/hellolynk-mark.png +0 -0
  13. package/plugins/hellolynk-codex/package.json +11 -0
  14. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-account.mjs +180 -0
  15. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-core.mjs +770 -0
  16. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-client-profile.mjs +191 -0
  17. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-auth.mjs +347 -0
  18. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-host-protected-store.mjs +2721 -0
  19. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-local-process-lock.mjs +157 -0
  20. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-neutral-host-installation-store.mjs +765 -0
  21. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-platform-credential-store.mjs +773 -0
  22. package/plugins/hellolynk-codex/runtime/bootstrap/core/hellolynk-runtime-safety.cjs +471 -0
  23. package/plugins/hellolynk-codex/runtime/bootstrap/platform/windows/hellolynk-host-protected-store.ps1 +2866 -0
  24. package/plugins/hellolynk-codex/runtime/connect-activate.mjs +837 -0
  25. package/plugins/hellolynk-codex/runtime/core/hellolynk-agent-configurator.mjs +701 -0
  26. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-account.mjs +180 -0
  27. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-core.mjs +770 -0
  28. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-profile.mjs +191 -0
  29. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update-entry.mjs +31 -0
  30. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update-runtime.mjs +600 -0
  31. package/plugins/hellolynk-codex/runtime/core/hellolynk-client-update.mjs +453 -0
  32. package/plugins/hellolynk-codex/runtime/core/hellolynk-contact-request-e2ee.mjs +867 -0
  33. package/plugins/hellolynk-codex/runtime/core/hellolynk-device-enrollment.mjs +435 -0
  34. package/plugins/hellolynk-codex/runtime/core/hellolynk-direct-text-e2ee-client.mjs +1964 -0
  35. package/plugins/hellolynk-codex/runtime/core/hellolynk-direct-text-e2ee.mjs +1207 -0
  36. package/plugins/hellolynk-codex/runtime/core/hellolynk-host-auth.mjs +347 -0
  37. package/plugins/hellolynk-codex/runtime/core/hellolynk-host-protected-store.mjs +2721 -0
  38. package/plugins/hellolynk-codex/runtime/core/hellolynk-host-transport-client.mjs +946 -0
  39. package/plugins/hellolynk-codex/runtime/core/hellolynk-host.mjs +2374 -0
  40. package/plugins/hellolynk-codex/runtime/core/hellolynk-human-confirmation-ledger.mjs +256 -0
  41. package/plugins/hellolynk-codex/runtime/core/hellolynk-human-relationship-controller.mjs +1234 -0
  42. package/plugins/hellolynk-codex/runtime/core/hellolynk-inbox-read-state.mjs +11 -0
  43. package/plugins/hellolynk-codex/runtime/core/hellolynk-indexed-message-store.mjs +1558 -0
  44. package/plugins/hellolynk-codex/runtime/core/hellolynk-instance-conversation.mjs +185 -0
  45. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-contact-requests.mjs +1733 -0
  46. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-contacts.mjs +1228 -0
  47. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-data-migration.mjs +766 -0
  48. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-data-protection.mjs +747 -0
  49. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-identity-trust.mjs +274 -0
  50. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-messaging.mjs +3043 -0
  51. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-peer-transport.mjs +103 -0
  52. package/plugins/hellolynk-codex/runtime/core/hellolynk-local-process-lock.mjs +157 -0
  53. package/plugins/hellolynk-codex/runtime/core/hellolynk-model-inbox.mjs +230 -0
  54. package/plugins/hellolynk-codex/runtime/core/hellolynk-model-notices.cjs +60 -0
  55. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-addressing-tools.cjs +231 -0
  56. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-conversations.mjs +280 -0
  57. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-human-confirmation-broker.mjs +1036 -0
  58. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-inbox-runtime.mjs +553 -0
  59. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-notice.mjs +50 -0
  60. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-reply-routes.mjs +96 -0
  61. package/plugins/hellolynk-codex/runtime/core/hellolynk-native-worker-lease.mjs +84 -0
  62. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-assembly.mjs +955 -0
  63. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-installation-store.mjs +765 -0
  64. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-launcher.mjs +665 -0
  65. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-process.mjs +4374 -0
  66. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-store-adapters.mjs +548 -0
  67. package/plugins/hellolynk-codex/runtime/core/hellolynk-neutral-host-workbench-read-model.mjs +1365 -0
  68. package/plugins/hellolynk-codex/runtime/core/hellolynk-platform-credential-store.mjs +773 -0
  69. package/plugins/hellolynk-codex/runtime/core/hellolynk-relay-client-cli.mjs +232 -0
  70. package/plugins/hellolynk-codex/runtime/core/hellolynk-release-retention.mjs +277 -0
  71. package/plugins/hellolynk-codex/runtime/core/hellolynk-runtime-safety.cjs +471 -0
  72. package/plugins/hellolynk-codex/runtime/core/hellolynk-workbench-action-grants.mjs +457 -0
  73. package/plugins/hellolynk-codex/runtime/core/hellolynk-workbench-connection.mjs +234 -0
  74. package/plugins/hellolynk-codex/runtime/neutral-host-bootstrap.mjs +64 -0
  75. package/plugins/hellolynk-codex/runtime/neutral-host-release-entry.mjs +70 -0
  76. package/plugins/hellolynk-codex/runtime/neutral-host-release-loader.mjs +156 -0
  77. package/plugins/hellolynk-codex/runtime/neutral-host-release-manifest.json +358 -0
  78. package/plugins/hellolynk-codex/runtime/neutral-host-release-pin.json +4 -0
  79. package/plugins/hellolynk-codex/runtime/platform/windows/configure-agent.ps1 +281 -0
  80. package/plugins/hellolynk-codex/runtime/platform/windows/credential-store.ps1 +844 -0
  81. package/plugins/hellolynk-codex/runtime/platform/windows/hellolynk-host-protected-store.ps1 +2866 -0
  82. package/plugins/hellolynk-codex/runtime/platform/windows/hellolynk-human-confirmation-ledger.ps1 +155 -0
  83. package/plugins/hellolynk-codex/runtime/platform/windows/hellolynk-local-data-key.ps1 +300 -0
  84. package/plugins/hellolynk-codex/runtime/platform/windows/hellolynk-native-human-confirmation-broker.ps1 +216 -0
  85. package/plugins/hellolynk-codex/runtime/workbench/candidate-bootstrap.mjs +54 -0
  86. package/plugins/hellolynk-codex/runtime/workbench/contract.mjs +1314 -0
  87. package/plugins/hellolynk-codex/runtime/workbench/hellolynk-workbench-build.json +215 -0
  88. package/plugins/hellolynk-codex/runtime/workbench/host-capabilities.mjs +80 -0
  89. package/plugins/hellolynk-codex/runtime/workbench/i18n.mjs +1127 -0
  90. package/plugins/hellolynk-codex/runtime/workbench/loopback-surface.mjs +740 -0
  91. package/plugins/hellolynk-codex/runtime/workbench/mcp-app-bundle.mjs +97 -0
  92. package/plugins/hellolynk-codex/runtime/workbench/service.mjs +485 -0
  93. package/plugins/hellolynk-codex/runtime/workbench/state.mjs +421 -0
  94. package/plugins/hellolynk-codex/runtime/workbench/transports.mjs +171 -0
  95. package/plugins/hellolynk-codex/runtime/workbench/ui/app.mjs +6120 -0
  96. package/plugins/hellolynk-codex/runtime/workbench/ui/connection-form.mjs +155 -0
  97. package/plugins/hellolynk-codex/runtime/workbench/ui/hellolynk-mark.png +0 -0
  98. package/plugins/hellolynk-codex/runtime/workbench/ui/http-transport.mjs +247 -0
  99. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/arrow-left.svg +3 -0
  100. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/close.svg +3 -0
  101. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/contacts.svg +3 -0
  102. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/inbox.svg +3 -0
  103. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/refresh.svg +3 -0
  104. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/search.svg +3 -0
  105. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/security.svg +3 -0
  106. package/plugins/hellolynk-codex/runtime/workbench/ui/icons/settings.svg +3 -0
  107. package/plugins/hellolynk-codex/runtime/workbench/ui/index.html +139 -0
  108. package/plugins/hellolynk-codex/runtime/workbench/ui/loopback-entry.mjs +26 -0
  109. package/plugins/hellolynk-codex/runtime/workbench/ui/mcp-app-client.mjs +151 -0
  110. package/plugins/hellolynk-codex/runtime/workbench/ui/mcp-app-entry.mjs +452 -0
  111. package/plugins/hellolynk-codex/runtime/workbench/ui/styles.css +686 -0
  112. package/plugins/hellolynk-codex/server/codex-neutral-production.mjs +520 -0
  113. package/plugins/hellolynk-codex/server/mcp-proxy.mjs +306 -0
  114. package/plugins/hellolynk-codex/server/mcp-server.mjs +1193 -0
  115. package/plugins/hellolynk-codex/server/native-conversation-directory.mjs +33 -0
  116. package/plugins/hellolynk-codex/server/native-reply-routes.mjs +32 -0
  117. package/plugins/hellolynk-codex/server/native-task-client.mjs +382 -0
  118. package/plugins/hellolynk-codex/server/native-task-runtime.mjs +8 -0
  119. package/plugins/hellolynk-codex/server/neutral-host-adapter.mjs +649 -0
  120. package/plugins/hellolynk-codex/server/workbench-runtime.mjs +180 -0
  121. package/plugins/hellolynk-codex/skills/hellolynk-open/SKILL.md +11 -0
  122. package/plugins/hellolynk-codex/skills/hellolynk-open/agents/openai.yaml +4 -0
  123. package/tools/hellolynk-activate-neutral-host-clients.mjs +837 -0
@@ -0,0 +1,215 @@
1
+ {
2
+ "contract": "hellolynk-shared-workbench-build-v1",
3
+ "version": "1.3.43",
4
+ "sourceRoot": "clients/workbench",
5
+ "contracts": {
6
+ "snapshotSchemaVersion": 12,
7
+ "commandSchemaVersion": 6,
8
+ "snapshot": "hellolynk-workbench-snapshot-v12",
9
+ "readRequest": "hellolynk-workbench-read-request-v1",
10
+ "command": "hellolynk-workbench-command-v6",
11
+ "result": "hellolynk-workbench-command-result-v6"
12
+ },
13
+ "languageCatalog": {
14
+ "source": "clients/workbench/i18n.mjs",
15
+ "locales": [
16
+ {
17
+ "locale": "zh-CN",
18
+ "keyCount": 540,
19
+ "keySetSha256": "7e7e69845670c6411bf5384b0cfdb4bdfb462184c513964090d24b4280da41f8",
20
+ "catalogSha256": "5242cfca9b64d796903b59f15ddd850da850c722e7204f6bdc5b1041ee12b216"
21
+ },
22
+ {
23
+ "locale": "en",
24
+ "keyCount": 540,
25
+ "keySetSha256": "7e7e69845670c6411bf5384b0cfdb4bdfb462184c513964090d24b4280da41f8",
26
+ "catalogSha256": "5dfa91cdbd985202bdca0e4ea62aa74ebf5979a1a5d4ed5b1a884670c209c16f"
27
+ }
28
+ ]
29
+ },
30
+ "designResources": [
31
+ "ui/index.html",
32
+ "ui/styles.css",
33
+ "ui/hellolynk-mark.png",
34
+ "ui/icons/arrow-left.svg",
35
+ "ui/icons/close.svg",
36
+ "ui/icons/contacts.svg",
37
+ "ui/icons/inbox.svg",
38
+ "ui/icons/refresh.svg",
39
+ "ui/icons/search.svg",
40
+ "ui/icons/security.svg",
41
+ "ui/icons/settings.svg"
42
+ ],
43
+ "excludedProductionSources": [
44
+ {
45
+ "path": "synthetic-fixture.mjs",
46
+ "reason": "synthetic-preview-only"
47
+ },
48
+ {
49
+ "path": "ui/public-site.css",
50
+ "reason": "public-demo-only"
51
+ },
52
+ {
53
+ "path": "ui/synthetic-preview-entry.mjs",
54
+ "reason": "synthetic-preview-only"
55
+ }
56
+ ],
57
+ "files": [
58
+ {
59
+ "path": "candidate-bootstrap.mjs",
60
+ "sourcePath": "clients/workbench/candidate-bootstrap.mjs",
61
+ "bytes": 2384,
62
+ "sha256": "891b02f750693e5b4836e716922c2d632f6736b2a5b3b7417f161499459f3f56"
63
+ },
64
+ {
65
+ "path": "contract.mjs",
66
+ "sourcePath": "clients/workbench/contract.mjs",
67
+ "bytes": 68501,
68
+ "sha256": "20648c3ed8e20b984b698010855414f8d4acaf0e2ade53b997b5582a85d90a08"
69
+ },
70
+ {
71
+ "path": "host-capabilities.mjs",
72
+ "sourcePath": "clients/workbench/host-capabilities.mjs",
73
+ "bytes": 2432,
74
+ "sha256": "4e1a82e6cb46dd775ba39e2d34ff21eb1c293523883d18e607084ca91cfffb87"
75
+ },
76
+ {
77
+ "path": "i18n.mjs",
78
+ "sourcePath": "clients/workbench/i18n.mjs",
79
+ "bytes": 74648,
80
+ "sha256": "272917746c06cabc1b87b94341f2deca5591f0bea2d7a0e07b2d959d8e1f8c74"
81
+ },
82
+ {
83
+ "path": "loopback-surface.mjs",
84
+ "sourcePath": "clients/workbench/loopback-surface.mjs",
85
+ "bytes": 34375,
86
+ "sha256": "6a550034c5dd558dfd22f9cb589fd76df40a99e976538e3b5d01371d212c9aa6"
87
+ },
88
+ {
89
+ "path": "mcp-app-bundle.mjs",
90
+ "sourcePath": "clients/workbench/mcp-app-bundle.mjs",
91
+ "bytes": 4976,
92
+ "sha256": "48fb8224cbaa7f78a386a79b2dba761f4de6c4b83b16032f7f96bd9783e172e4"
93
+ },
94
+ {
95
+ "path": "service.mjs",
96
+ "sourcePath": "clients/workbench/service.mjs",
97
+ "bytes": 20319,
98
+ "sha256": "3bf82a0076e9fe3b62105c626fe0d622092224f28d3905c62eafd65bf5385dcc"
99
+ },
100
+ {
101
+ "path": "state.mjs",
102
+ "sourcePath": "clients/workbench/state.mjs",
103
+ "bytes": 13585,
104
+ "sha256": "770d10f3bf76236772c87e86f5da346c013da387fb40c08360f895a7052cf7b5"
105
+ },
106
+ {
107
+ "path": "transports.mjs",
108
+ "sourcePath": "clients/workbench/transports.mjs",
109
+ "bytes": 5997,
110
+ "sha256": "0c9f42ca9c9a4b4cc29b1bdcc0a0488d16a9ad06c235c642dff9cd4fc6f0d528"
111
+ },
112
+ {
113
+ "path": "ui/app.mjs",
114
+ "sourcePath": "clients/workbench/ui/app.mjs",
115
+ "bytes": 336483,
116
+ "sha256": "643a5ac8d303f936ee87dd7c0c851aa1988e99ea9a9a45c6c89da28bdc76e799"
117
+ },
118
+ {
119
+ "path": "ui/connection-form.mjs",
120
+ "sourcePath": "clients/workbench/ui/connection-form.mjs",
121
+ "bytes": 9510,
122
+ "sha256": "700ca793f5eddca1dfea5f220c73732efc51ea4e1f8b8fc36da2bb67136240f0"
123
+ },
124
+ {
125
+ "path": "ui/http-transport.mjs",
126
+ "sourcePath": "clients/workbench/ui/http-transport.mjs",
127
+ "bytes": 10750,
128
+ "sha256": "b2fedbc2c34bcf065e0fc23c8c5fb37d358c03daa2c82ba46530b8dfb8fdc571"
129
+ },
130
+ {
131
+ "path": "ui/hellolynk-mark.png",
132
+ "sourcePath": "clients/workbench/ui/hellolynk-mark.png",
133
+ "bytes": 14571,
134
+ "sha256": "108e5c90e1717a87169d317c15f8de33859ed487b06654888047c729d9ab5982"
135
+ },
136
+ {
137
+ "path": "ui/icons/arrow-left.svg",
138
+ "sourcePath": "clients/workbench/ui/icons/arrow-left.svg",
139
+ "bytes": 216,
140
+ "sha256": "1c527dd347b5fba0312cdcd66cf7514a261855672f7585d1c8b1882f602442a6"
141
+ },
142
+ {
143
+ "path": "ui/icons/close.svg",
144
+ "sourcePath": "clients/workbench/ui/icons/close.svg",
145
+ "bytes": 177,
146
+ "sha256": "22f5c4fb0660601a817ead151c37e82e93d39b2ef4ce1192d66f9099a3c59b36"
147
+ },
148
+ {
149
+ "path": "ui/icons/contacts.svg",
150
+ "sourcePath": "clients/workbench/ui/icons/contacts.svg",
151
+ "bytes": 324,
152
+ "sha256": "de0add3c43bca68d8cae7736bc3ea8145ca0abb7f32c25127542c6f5a27b3f45"
153
+ },
154
+ {
155
+ "path": "ui/icons/inbox.svg",
156
+ "sourcePath": "clients/workbench/ui/icons/inbox.svg",
157
+ "bytes": 271,
158
+ "sha256": "e1938770f085e6794a2e22aa3f8e890e083ac341a3c3faa13098a8243dc8306b"
159
+ },
160
+ {
161
+ "path": "ui/icons/refresh.svg",
162
+ "sourcePath": "clients/workbench/ui/icons/refresh.svg",
163
+ "bytes": 226,
164
+ "sha256": "a7b91e87c1a25d117b1352d2ec131bf6e3fe67df2020af87e0d3575c06d86f29"
165
+ },
166
+ {
167
+ "path": "ui/icons/search.svg",
168
+ "sourcePath": "clients/workbench/ui/icons/search.svg",
169
+ "bytes": 212,
170
+ "sha256": "135df34e348445114a1b88757fe7ef79a6718ffa4cc761c30f8026044552b699"
171
+ },
172
+ {
173
+ "path": "ui/icons/security.svg",
174
+ "sourcePath": "clients/workbench/ui/icons/security.svg",
175
+ "bytes": 268,
176
+ "sha256": "9b6c502b2ce2795530f2e7018e2c24aaaf1cf49472f040868bad148d3321071e"
177
+ },
178
+ {
179
+ "path": "ui/icons/settings.svg",
180
+ "sourcePath": "clients/workbench/ui/icons/settings.svg",
181
+ "bytes": 536,
182
+ "sha256": "17b528a15b8187aecd80c4974c7432ec6e58e6a12e062104fae70bf63c46caa2"
183
+ },
184
+ {
185
+ "path": "ui/index.html",
186
+ "sourcePath": "clients/workbench/ui/index.html",
187
+ "bytes": 8245,
188
+ "sha256": "b24cd1f768d5132539722ac7ade3acfe5aa86a47ee16a2adacf3bbf18b70c989"
189
+ },
190
+ {
191
+ "path": "ui/loopback-entry.mjs",
192
+ "sourcePath": "clients/workbench/ui/loopback-entry.mjs",
193
+ "bytes": 1355,
194
+ "sha256": "0e5e5d259ab6e2d8408c6d2e089551e6f279dcb1267e9db19f9d9dded0956fd4"
195
+ },
196
+ {
197
+ "path": "ui/mcp-app-client.mjs",
198
+ "sourcePath": "clients/workbench/ui/mcp-app-client.mjs",
199
+ "bytes": 5381,
200
+ "sha256": "91b1e6e84a12434c2be7614845febfa44afa341d5d7f580bc1bfc106ed37f8f8"
201
+ },
202
+ {
203
+ "path": "ui/mcp-app-entry.mjs",
204
+ "sourcePath": "clients/workbench/ui/mcp-app-entry.mjs",
205
+ "bytes": 22843,
206
+ "sha256": "ba82ac55c4efcf7701bda33b6c6e0df4d59da542b1d6c33c96ba7f2391c4773a"
207
+ },
208
+ {
209
+ "path": "ui/styles.css",
210
+ "sourcePath": "clients/workbench/ui/styles.css",
211
+ "bytes": 53189,
212
+ "sha256": "34d24d3d35800a796905049eb5f785f402cf1e82118c66efd4893bd003adbe31"
213
+ }
214
+ ]
215
+ }
@@ -0,0 +1,80 @@
1
+ export const HELLOLYNK_WORKBENCH_REAL_TRANSPORTS = Object.freeze(["mcp-app-rpc", "loopback-http"]);
2
+
3
+ export const HELLOLYNK_WORKBENCH_HOST_CAPABILITIES = deepFreeze({
4
+ codex: {
5
+ candidateVersion: "0.1.7",
6
+ container: "mcp-app",
7
+ transport: "mcp-app-rpc",
8
+ launch: "embedded-resource",
9
+ iframeRequired: false,
10
+ sameOriginRequired: false,
11
+ keyboard: "host-forwarded",
12
+ ime: "browser-engine",
13
+ lifecycle: "mcp-resource",
14
+ fallback: "safe-loopback-deep-link",
15
+ },
16
+ openclaw: {
17
+ candidateVersion: "0.1.9",
18
+ container: "gateway-control-ui",
19
+ transport: "loopback-http",
20
+ launch: "gateway-authenticated-exact-parent-frame",
21
+ pagePath: "/workbench",
22
+ iframeRequired: true,
23
+ sameOriginRequired: false,
24
+ keyboard: "browser-native",
25
+ ime: "browser-native",
26
+ lifecycle: "gateway-session",
27
+ fallback: "safe-loopback-deep-link",
28
+ },
29
+ "trae-work": {
30
+ candidateVersion: "0.3.9",
31
+ container: "open-preview",
32
+ transport: "loopback-http",
33
+ launch: "secure-top-level-preview",
34
+ pagePath: "/inbox",
35
+ iframeRequired: false,
36
+ sameOriginRequired: true,
37
+ keyboard: "browser-native",
38
+ ime: "browser-native",
39
+ lifecycle: "armed-local-session",
40
+ fallback: "safe-loopback-deep-link",
41
+ },
42
+ workbuddy: {
43
+ candidateVersion: "0.2.9",
44
+ container: "local-web",
45
+ transport: "loopback-http",
46
+ launch: "secure-top-level-local-web",
47
+ pagePath: "/inbox",
48
+ iframeRequired: false,
49
+ sameOriginRequired: true,
50
+ keyboard: "browser-native",
51
+ ime: "browser-native",
52
+ lifecycle: "armed-local-session",
53
+ fallback: "safe-loopback-deep-link",
54
+ },
55
+ "claude-code": {
56
+ candidateVersion: "0.1.0",
57
+ container: "local-web",
58
+ transport: "loopback-http",
59
+ launch: "secure-top-level-local-web",
60
+ pagePath: "/inbox",
61
+ iframeRequired: false,
62
+ sameOriginRequired: true,
63
+ keyboard: "browser-native",
64
+ ime: "browser-native",
65
+ lifecycle: "armed-local-session",
66
+ fallback: "safe-loopback-deep-link",
67
+ },
68
+ });
69
+
70
+ export function workbenchLaunchPlan(host) {
71
+ const plan = HELLOLYNK_WORKBENCH_HOST_CAPABILITIES[String(host || "").toLowerCase()];
72
+ if (!plan) throw new Error("workbench_host_unsupported");
73
+ return plan;
74
+ }
75
+
76
+ function deepFreeze(value) {
77
+ if (!value || typeof value !== "object" || Object.isFrozen(value)) return value;
78
+ for (const child of Object.values(value)) deepFreeze(child);
79
+ return Object.freeze(value);
80
+ }