@centralu/darwin-arm64 0.1.0-beta.11 → 0.1.0-beta.12

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 (97) hide show
  1. package/Centralu.app/Contents/Info.plist +2 -2
  2. package/Centralu.app/Contents/MacOS/centralu +0 -0
  3. package/Centralu.app/Contents/MacOS/centralu-keeper +0 -0
  4. package/Centralu.app/Contents/Resources/content/centralu-keeper +0 -0
  5. package/Centralu.app/Contents/Resources/content/content-manifest.json +500 -0
  6. package/Centralu.app/Contents/Resources/content/content-manifest.json.sig +7 -0
  7. package/Centralu.app/Contents/Resources/content/host/app-template/AGENTS.md +140 -0
  8. package/Centralu.app/Contents/Resources/content/host/app-template/CLAUDE.md +1 -0
  9. package/Centralu.app/Contents/Resources/content/host/app-template/centralu.app.json +9 -0
  10. package/Centralu.app/Contents/Resources/content/host/app-template/gitattributes +2 -0
  11. package/Centralu.app/Contents/Resources/content/host/app-template/runtime/THIRD_PARTY_LICENSES.txt +950 -0
  12. package/Centralu.app/Contents/Resources/content/host/app-template/runtime/centralu-app-runtime.mjs +82 -0
  13. package/Centralu.app/Contents/Resources/content/host/app-template/runtime/centralu-app-runtime.mjs.map +1 -0
  14. package/Centralu.app/Contents/Resources/content/host/app-template/runtime/mcp-app.js +104 -0
  15. package/Centralu.app/Contents/Resources/content/host/app-template/server.mjs +71 -0
  16. package/Centralu.app/Contents/Resources/content/host/app-template/ui/index.html +145 -0
  17. package/Centralu.app/Contents/Resources/content/host/bundle-info.json +8 -0
  18. package/Centralu.app/Contents/Resources/content/host/codex-orchestrator-bridge.mjs +3858 -0
  19. package/Centralu.app/Contents/Resources/content/host/main.mjs +115845 -0
  20. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  21. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/binding.js +62 -0
  22. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/darwin-arm64.js +3 -0
  23. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/darwin-x64.js +3 -0
  24. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/database.js +109 -0
  25. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/index.js +3 -0
  26. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/linux-arm64.js +3 -0
  27. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/linux-x64.js +3 -0
  28. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/linuxmusl-arm64.js +4 -0
  29. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/linuxmusl-x64.js +4 -0
  30. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  31. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  32. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/explain.js +9 -0
  33. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  34. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  35. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  36. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  37. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/table.js +195 -0
  38. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  39. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  40. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/sqlite-error.js +25 -0
  41. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/util.js +12 -0
  42. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/win32-arm64.js +3 -0
  43. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/lib/win32-x64.js +3 -0
  44. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/package.json +67 -0
  45. package/Centralu.app/Contents/Resources/content/host/node_modules/better-sqlite3/prebuilds/darwin-arm64.node +0 -0
  46. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/conpty_console_list_agent.js +16 -0
  47. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/conpty_console_list_agent.js.map +1 -0
  48. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  49. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/eventEmitter2.js.map +1 -0
  50. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/eventEmitter2.test.js +30 -0
  51. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/eventEmitter2.test.js.map +1 -0
  52. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/index.js +52 -0
  53. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/index.js.map +1 -0
  54. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/interfaces.js +7 -0
  55. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/interfaces.js.map +1 -0
  56. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/shared/conout.js +11 -0
  57. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/shared/conout.js.map +1 -0
  58. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/terminal.js +190 -0
  59. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/terminal.js.map +1 -0
  60. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/terminal.test.js +139 -0
  61. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/terminal.test.js.map +1 -0
  62. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/testUtils.test.js +28 -0
  63. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/testUtils.test.js.map +1 -0
  64. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/types.js +7 -0
  65. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/types.js.map +1 -0
  66. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/unixTerminal.js +346 -0
  67. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/unixTerminal.js.map +1 -0
  68. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/unixTerminal.test.js +351 -0
  69. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/unixTerminal.test.js.map +1 -0
  70. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/utils.js +39 -0
  71. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/utils.js.map +1 -0
  72. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  73. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsConoutConnection.js.map +1 -0
  74. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
  75. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsPtyAgent.js.map +1 -0
  76. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsPtyAgent.test.js +90 -0
  77. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsPtyAgent.test.js.map +1 -0
  78. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsTerminal.js +199 -0
  79. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsTerminal.js.map +1 -0
  80. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsTerminal.test.js +219 -0
  81. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/windowsTerminal.test.js.map +1 -0
  82. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  83. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map +1 -0
  84. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/package.json +64 -0
  85. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  86. package/Centralu.app/Contents/Resources/content/host/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  87. package/Centralu.app/Contents/Resources/content/host/schema.sql +98 -0
  88. package/Centralu.app/Contents/Resources/resources/host/bundle-info.json +2 -2
  89. package/Centralu.app/Contents/Resources/resources/host/main.mjs +2790 -808
  90. package/Centralu.app/Contents/Resources/resources/host/schema.sql +4 -0
  91. package/Centralu.app/Contents/Resources/shell/Centralu.app/Contents/Info.plist +82 -0
  92. package/Centralu.app/Contents/Resources/shell/Centralu.app/Contents/MacOS/centralu-shell +0 -0
  93. package/Centralu.app/Contents/Resources/shell/Centralu.app/Contents/Resources/icon.icns +0 -0
  94. package/Centralu.app/Contents/Resources/shell/Centralu.app/Contents/_CodeSignature/CodeResources +128 -0
  95. package/Centralu.app/Contents/Resources/shell/shell.json +6 -0
  96. package/Centralu.app/Contents/_CodeSignature/CodeResources +997 -9
  97. package/package.json +1 -1
@@ -17,9 +17,9 @@
17
17
  <key>CFBundlePackageType</key>
18
18
  <string>APPL</string>
19
19
  <key>CFBundleShortVersionString</key>
20
- <string>0.1.0-beta.11</string>
20
+ <string>0.1.0-beta.12</string>
21
21
  <key>CFBundleVersion</key>
22
- <string>0.1.0-beta.11</string>
22
+ <string>0.1.0-beta.12</string>
23
23
  <key>CSResourcesFileMapped</key>
24
24
  <true/>
25
25
  <key>LSApplicationCategoryType</key>
@@ -0,0 +1,500 @@
1
+ {
2
+ "format": 1,
3
+ "appVersion": "0.1.0-beta.12",
4
+ "platform": "darwin-arm64",
5
+ "minShellVersion": 1,
6
+ "files": [
7
+ {
8
+ "path": "centralu-keeper",
9
+ "size": 972320,
10
+ "sha256": "c9b5f59d162946da37b241d9ee0434d5de8f911be0fb5b74a45933077c0621f4",
11
+ "executable": true
12
+ },
13
+ {
14
+ "path": "host/app-template/AGENTS.md",
15
+ "size": 10383,
16
+ "sha256": "6154e3069ff095bb7035a6768e3366cec7e84ff2a0ba2fc8ed67c0581dbaba8b",
17
+ "executable": false
18
+ },
19
+ {
20
+ "path": "host/app-template/CLAUDE.md",
21
+ "size": 11,
22
+ "sha256": "336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49",
23
+ "executable": false
24
+ },
25
+ {
26
+ "path": "host/app-template/centralu.app.json",
27
+ "size": 238,
28
+ "sha256": "0f1cc0b23deb7383a877cde61d0817d42533a66ad69b4b525defbc7375c032ef",
29
+ "executable": false
30
+ },
31
+ {
32
+ "path": "host/app-template/gitattributes",
33
+ "size": 142,
34
+ "sha256": "62e1bf7df96b6862c1a1b8c66f8e39cb31aad0489670c75475b1258245cec2aa",
35
+ "executable": false
36
+ },
37
+ {
38
+ "path": "host/app-template/runtime/THIRD_PARTY_LICENSES.txt",
39
+ "size": 52571,
40
+ "sha256": "ac551b077c3ec25d6ebe457bbf3b2c174eb8b7d8c85ffd1b52fce546d58fcb62",
41
+ "executable": false
42
+ },
43
+ {
44
+ "path": "host/app-template/runtime/centralu-app-runtime.mjs",
45
+ "size": 642710,
46
+ "sha256": "97b0839f01c5ed170f6921df3884e1ce6c30d9b0eb6871b4d289594e94c82564",
47
+ "executable": false
48
+ },
49
+ {
50
+ "path": "host/app-template/runtime/centralu-app-runtime.mjs.map",
51
+ "size": 743679,
52
+ "sha256": "0fc05f9dbd6b192ff74b42e9aadef3c6eaaf9f2f994ecb650e606deba3251cb1",
53
+ "executable": false
54
+ },
55
+ {
56
+ "path": "host/app-template/runtime/mcp-app.js",
57
+ "size": 473677,
58
+ "sha256": "cb5ad8ccdaec624bdf27b3ac585e58d29dc60590d078b9667f6f4947765d5918",
59
+ "executable": false
60
+ },
61
+ {
62
+ "path": "host/app-template/server.mjs",
63
+ "size": 2604,
64
+ "sha256": "60697fa47a26f7851ae496666fa9ee1158e6b5ec6df2eccecfe64fd6144b9038",
65
+ "executable": false
66
+ },
67
+ {
68
+ "path": "host/app-template/ui/index.html",
69
+ "size": 6726,
70
+ "sha256": "47f63220770c85d9f9ec1ab641ce417c0d28c189211d2300070c6447dcb62860",
71
+ "executable": false
72
+ },
73
+ {
74
+ "path": "host/bundle-info.json",
75
+ "size": 162,
76
+ "sha256": "d6af4c5778a131116e0e4fa1e4236c559c7e2270cfd3d937e0a4da79412a7a8a",
77
+ "executable": false
78
+ },
79
+ {
80
+ "path": "host/codex-orchestrator-bridge.mjs",
81
+ "size": 134065,
82
+ "sha256": "d1f0b72e4aec9fe5629fca66b5d7bce75428785f671e263d82d10662484bfa90",
83
+ "executable": true
84
+ },
85
+ {
86
+ "path": "host/main.mjs",
87
+ "size": 5212801,
88
+ "sha256": "d27d3edf42fd32e4cb9cf6ecaf6ef8b4f85d5d27f3f563e84111c07cce2b1348",
89
+ "executable": false
90
+ },
91
+ {
92
+ "path": "host/node_modules/better-sqlite3/build/Release/better_sqlite3.node",
93
+ "size": 1980736,
94
+ "sha256": "98e0e8acd01c632fe5615243e1296af0372826f8783b18fc31c506f73c47459c",
95
+ "executable": false
96
+ },
97
+ {
98
+ "path": "host/node_modules/better-sqlite3/lib/binding.js",
99
+ "size": 2123,
100
+ "sha256": "4fe0f892facc02af7db0a1770150565d2e944e7da3c6493116d8e2a01a0f9b19",
101
+ "executable": false
102
+ },
103
+ {
104
+ "path": "host/node_modules/better-sqlite3/lib/darwin-arm64.js",
105
+ "size": 166,
106
+ "sha256": "830ec2bbc0d402f8be13e93d5549c7a9030a2d5eed40f527e4b4aee9f962ec3b",
107
+ "executable": false
108
+ },
109
+ {
110
+ "path": "host/node_modules/better-sqlite3/lib/darwin-x64.js",
111
+ "size": 164,
112
+ "sha256": "2d7671f3e5d0f19e78eb88d6cd2547ec7554acd3844942fa5a8fff61fd8f9c93",
113
+ "executable": false
114
+ },
115
+ {
116
+ "path": "host/node_modules/better-sqlite3/lib/database.js",
117
+ "size": 4729,
118
+ "sha256": "539315c97591561394d2a0f257632305c3af1e32915a123aa8cc9032056d8ae2",
119
+ "executable": false
120
+ },
121
+ {
122
+ "path": "host/node_modules/better-sqlite3/lib/index.js",
123
+ "size": 149,
124
+ "sha256": "0d56e190de8623278641b613433e89c4af2e5c90092c9c6e425f873d7fbc7ccf",
125
+ "executable": false
126
+ },
127
+ {
128
+ "path": "host/node_modules/better-sqlite3/lib/linux-arm64.js",
129
+ "size": 165,
130
+ "sha256": "e2ff6a1e844f0f95794ebe50cea071f235bd57182ac04985819b86498541797c",
131
+ "executable": false
132
+ },
133
+ {
134
+ "path": "host/node_modules/better-sqlite3/lib/linux-x64.js",
135
+ "size": 163,
136
+ "sha256": "96f9bbd76ab65da4f98a4833eb512746db6a99a2728db20feae2d70db0c2e273",
137
+ "executable": false
138
+ },
139
+ {
140
+ "path": "host/node_modules/better-sqlite3/lib/linuxmusl-arm64.js",
141
+ "size": 190,
142
+ "sha256": "2edb0f14e62d3efa76c8089e58207895abb46642d1e988755a5eef5059605de9",
143
+ "executable": false
144
+ },
145
+ {
146
+ "path": "host/node_modules/better-sqlite3/lib/linuxmusl-x64.js",
147
+ "size": 188,
148
+ "sha256": "d28b85927738844f589601e78e241d501c30231e9b9890f8f3605fca6d238f3d",
149
+ "executable": false
150
+ },
151
+ {
152
+ "path": "host/node_modules/better-sqlite3/lib/methods/aggregate.js",
153
+ "size": 1932,
154
+ "sha256": "e9f74eb919ec93fe089c95ddf25a98f1f631c80418fa34fb2346ca1bc29f1b82",
155
+ "executable": false
156
+ },
157
+ {
158
+ "path": "host/node_modules/better-sqlite3/lib/methods/backup.js",
159
+ "size": 2380,
160
+ "sha256": "ea29d34992bb02e006d0fdeda9675ac5d2bb227aaf57468decd997e9fc9c7dbf",
161
+ "executable": false
162
+ },
163
+ {
164
+ "path": "host/node_modules/better-sqlite3/lib/methods/explain.js",
165
+ "size": 292,
166
+ "sha256": "0bd8cc80ccc7338f1d93058beea0cde924d4e7e652da9f51267e7c0757361be7",
167
+ "executable": false
168
+ },
169
+ {
170
+ "path": "host/node_modules/better-sqlite3/lib/methods/function.js",
171
+ "size": 1396,
172
+ "sha256": "f431d49303b8bbdc044b1f1b455bdad21fc9b74b007de0acb22f08f25b4febd3",
173
+ "executable": false
174
+ },
175
+ {
176
+ "path": "host/node_modules/better-sqlite3/lib/methods/inspect.js",
177
+ "size": 174,
178
+ "sha256": "4975a78daee850adee62ba98719d0f223819a0ec135a07c0e302994bd8dbff61",
179
+ "executable": false
180
+ },
181
+ {
182
+ "path": "host/node_modules/better-sqlite3/lib/methods/pragma.js",
183
+ "size": 543,
184
+ "sha256": "d399bf1dbc85ef8a51f946c5a9505f2c37d0b1bed3f68863b1bf202d53d6524e",
185
+ "executable": false
186
+ },
187
+ {
188
+ "path": "host/node_modules/better-sqlite3/lib/methods/serialize.js",
189
+ "size": 625,
190
+ "sha256": "7a10ee5c2735384b7f0c361811bc6d017db29f62b203fd3c68a35f667e2c2605",
191
+ "executable": false
192
+ },
193
+ {
194
+ "path": "host/node_modules/better-sqlite3/lib/methods/table.js",
195
+ "size": 7243,
196
+ "sha256": "2356885ca1ef37d20f2daeed2b82b9dd6e61481e851194174a16d32efa3ae2f0",
197
+ "executable": false
198
+ },
199
+ {
200
+ "path": "host/node_modules/better-sqlite3/lib/methods/transaction.js",
201
+ "size": 2855,
202
+ "sha256": "40b71d6113f328f96cec8f6f888ffddd98b5926d38fb1e2746939c7daba93e2e",
203
+ "executable": false
204
+ },
205
+ {
206
+ "path": "host/node_modules/better-sqlite3/lib/methods/wrappers.js",
207
+ "size": 1152,
208
+ "sha256": "b289d339ff56b19ab40d109050080e1c844f2a5d01e62d8cb37a0152b0479a47",
209
+ "executable": false
210
+ },
211
+ {
212
+ "path": "host/node_modules/better-sqlite3/lib/sqlite-error.js",
213
+ "size": 512,
214
+ "sha256": "903c140bb3d9d4f6256124889f5a820a491299907885d5b9d5ff2c4eaa268a06",
215
+ "executable": false
216
+ },
217
+ {
218
+ "path": "host/node_modules/better-sqlite3/lib/util.js",
219
+ "size": 331,
220
+ "sha256": "92b2e39e2151b43a2252e10b6d6de876ecaf0008336a4fa1dfe1317b20f1916f",
221
+ "executable": false
222
+ },
223
+ {
224
+ "path": "host/node_modules/better-sqlite3/lib/win32-arm64.js",
225
+ "size": 165,
226
+ "sha256": "00c1d5355a4e47e485e0ea8408a28423a18204d6d7ea5c57e599ebe64a1aa309",
227
+ "executable": false
228
+ },
229
+ {
230
+ "path": "host/node_modules/better-sqlite3/lib/win32-x64.js",
231
+ "size": 163,
232
+ "sha256": "c25867a2e904a367743498377e6e156a653bd10bcc5f9be7cbdf8a28359012ef",
233
+ "executable": false
234
+ },
235
+ {
236
+ "path": "host/node_modules/better-sqlite3/package.json",
237
+ "size": 1838,
238
+ "sha256": "6c9ea355190dfce3646ad4d2a31c9506de36d884a6461b3655a2a0c4ba3d1695",
239
+ "executable": false
240
+ },
241
+ {
242
+ "path": "host/node_modules/better-sqlite3/prebuilds/darwin-arm64.node",
243
+ "size": 1980736,
244
+ "sha256": "98e0e8acd01c632fe5615243e1296af0372826f8783b18fc31c506f73c47459c",
245
+ "executable": false
246
+ },
247
+ {
248
+ "path": "host/node_modules/node-pty/lib/conpty_console_list_agent.js",
249
+ "size": 721,
250
+ "sha256": "0d010879bb6680a0253d44363183d53e631f42972594eb6dcb1fb842c8c85e52",
251
+ "executable": false
252
+ },
253
+ {
254
+ "path": "host/node_modules/node-pty/lib/conpty_console_list_agent.js.map",
255
+ "size": 475,
256
+ "sha256": "e880507e8ebfcaf0fac8ffcb011a3bb3853847767c77bae744ad94ad096977c5",
257
+ "executable": false
258
+ },
259
+ {
260
+ "path": "host/node_modules/node-pty/lib/eventEmitter2.js",
261
+ "size": 1600,
262
+ "sha256": "f1c14613aa90c10def4ca7238329270871997eb26f919f7074dc25533e3e75dd",
263
+ "executable": false
264
+ },
265
+ {
266
+ "path": "host/node_modules/node-pty/lib/eventEmitter2.js.map",
267
+ "size": 1155,
268
+ "sha256": "2300f735c0a048d5b56a2821362f33cc9a811746b8a5b9552854f91a51f52810",
269
+ "executable": false
270
+ },
271
+ {
272
+ "path": "host/node_modules/node-pty/lib/eventEmitter2.test.js",
273
+ "size": 1266,
274
+ "sha256": "9cd06569c14d4cd180031ed4df914b817e75ceb104ac10ef65cae6815f46c568",
275
+ "executable": false
276
+ },
277
+ {
278
+ "path": "host/node_modules/node-pty/lib/eventEmitter2.test.js.map",
279
+ "size": 1396,
280
+ "sha256": "8d3742445dfccf223be42de83015447fbdbcc858a325c061302904f301f503cf",
281
+ "executable": false
282
+ },
283
+ {
284
+ "path": "host/node_modules/node-pty/lib/index.js",
285
+ "size": 2008,
286
+ "sha256": "c1b82c92c4c63aaa8e8441fc5a291c4727cd3f3550666d2fec7250e0f6d4b173",
287
+ "executable": false
288
+ },
289
+ {
290
+ "path": "host/node_modules/node-pty/lib/index.js.map",
291
+ "size": 987,
292
+ "sha256": "829a1a1f145a27eaaf5a636afdedf3ce9746bce25fd489ae04b5721d16f70acc",
293
+ "executable": false
294
+ },
295
+ {
296
+ "path": "host/node_modules/node-pty/lib/interfaces.js",
297
+ "size": 233,
298
+ "sha256": "56e4173f09aad26173f9d4c79800fda0b808c34424f987ef8d671cc931119a0a",
299
+ "executable": false
300
+ },
301
+ {
302
+ "path": "host/node_modules/node-pty/lib/interfaces.js.map",
303
+ "size": 124,
304
+ "sha256": "8ad6939566c34a59f5b7e49307050b73102acce29eed11c12e02fc3d765cc276",
305
+ "executable": false
306
+ },
307
+ {
308
+ "path": "host/node_modules/node-pty/lib/shared/conout.js",
309
+ "size": 348,
310
+ "sha256": "6ae3b0532616da11aa2a11b4506bb89b0d40be005a9ea9fb369fb59eefdbda47",
311
+ "executable": false
312
+ },
313
+ {
314
+ "path": "host/node_modules/node-pty/lib/shared/conout.js.map",
315
+ "size": 204,
316
+ "sha256": "03aeb1e2efe8dc06f069c98bdd30122b2df278f2ac0fbb0a39c91e73801a8eda",
317
+ "executable": false
318
+ },
319
+ {
320
+ "path": "host/node_modules/node-pty/lib/terminal.js",
321
+ "size": 7454,
322
+ "sha256": "5ed5cd66a766afba4a04093284e999f8516d41936501839055800b10eca5d304",
323
+ "executable": false
324
+ },
325
+ {
326
+ "path": "host/node_modules/node-pty/lib/terminal.js.map",
327
+ "size": 5845,
328
+ "sha256": "c9e670bcd71467bd461f9ed969e1e712471f2cd94287543601b7df11ce8c472a",
329
+ "executable": false
330
+ },
331
+ {
332
+ "path": "host/node_modules/node-pty/lib/terminal.test.js",
333
+ "size": 6250,
334
+ "sha256": "6f6ae435c9c6e93d8146fa7a79fe155ec3291880aa4de68fbad7ed8891e4f87b",
335
+ "executable": false
336
+ },
337
+ {
338
+ "path": "host/node_modules/node-pty/lib/terminal.test.js.map",
339
+ "size": 4151,
340
+ "sha256": "b22c83d59bafc013e5ac5016efb262cff8cbe782b79b064d3ce0f12ce55b41c1",
341
+ "executable": false
342
+ },
343
+ {
344
+ "path": "host/node_modules/node-pty/lib/testUtils.test.js",
345
+ "size": 807,
346
+ "sha256": "eb13d8ffc04ef385604b37170bafa9914736d5c5be8bca857c9f32958f6fe7ec",
347
+ "executable": false
348
+ },
349
+ {
350
+ "path": "host/node_modules/node-pty/lib/testUtils.test.js.map",
351
+ "size": 622,
352
+ "sha256": "ac8686314d11e1d90b32f5eb7e753bcd4a184ab4441ff12ea2c586a3b58785e6",
353
+ "executable": false
354
+ },
355
+ {
356
+ "path": "host/node_modules/node-pty/lib/types.js",
357
+ "size": 228,
358
+ "sha256": "408bf8287717b6322cc380ea66caf1b5e366dcf697707ae2f3cc454e08f3b151",
359
+ "executable": false
360
+ },
361
+ {
362
+ "path": "host/node_modules/node-pty/lib/types.js.map",
363
+ "size": 114,
364
+ "sha256": "980a71159075a8183a9a7981ac504e6c277785c33a1fc17eb6908d4abbb128da",
365
+ "executable": false
366
+ },
367
+ {
368
+ "path": "host/node_modules/node-pty/lib/unixTerminal.js",
369
+ "size": 13372,
370
+ "sha256": "a62e3a60c3bc1b0e7261f58284856df748dcee6761a2bc7a5a5ba98b22660473",
371
+ "executable": false
372
+ },
373
+ {
374
+ "path": "host/node_modules/node-pty/lib/unixTerminal.js.map",
375
+ "size": 9657,
376
+ "sha256": "fdc9afe47387e19f74b843cd620c7516895c5c99eba1c1a6aea636f41f9dda2b",
377
+ "executable": false
378
+ },
379
+ {
380
+ "path": "host/node_modules/node-pty/lib/unixTerminal.test.js",
381
+ "size": 19310,
382
+ "sha256": "608d6c9bcfa07873440ed813b499d347e3e79dace1cc58ea3bd61b53356f0937",
383
+ "executable": false
384
+ },
385
+ {
386
+ "path": "host/node_modules/node-pty/lib/unixTerminal.test.js.map",
387
+ "size": 11425,
388
+ "sha256": "44fb7f386894ab2cf5b557ec5cf74ec5417bb75faae608f0f667c365955c5e85",
389
+ "executable": false
390
+ },
391
+ {
392
+ "path": "host/node_modules/node-pty/lib/utils.js",
393
+ "size": 1548,
394
+ "sha256": "f75ad341c13fbf1a9a6605d7ee42dff5bbc5d43b7b381e413fb97eb1b8300beb",
395
+ "executable": false
396
+ },
397
+ {
398
+ "path": "host/node_modules/node-pty/lib/utils.js.map",
399
+ "size": 1142,
400
+ "sha256": "e699109e178ec671819a99db007389b5b39c3ac31d148ddcb47d9aca250327da",
401
+ "executable": false
402
+ },
403
+ {
404
+ "path": "host/node_modules/node-pty/lib/windowsConoutConnection.js",
405
+ "size": 6119,
406
+ "sha256": "1440f70908fb1f55911ac8e936a1230f68a9c00c03096fcef6788eac6aad9d62",
407
+ "executable": false
408
+ },
409
+ {
410
+ "path": "host/node_modules/node-pty/lib/windowsConoutConnection.js.map",
411
+ "size": 1660,
412
+ "sha256": "621dd488e7f33a2f2084cdb3d3df6560209105730d54ae3414fbbc3ba34c07c6",
413
+ "executable": false
414
+ },
415
+ {
416
+ "path": "host/node_modules/node-pty/lib/windowsPtyAgent.js",
417
+ "size": 12388,
418
+ "sha256": "8636d16b38266112204061a22b135734177c242837982fd3a4055be726efa64a",
419
+ "executable": false
420
+ },
421
+ {
422
+ "path": "host/node_modules/node-pty/lib/windowsPtyAgent.js.map",
423
+ "size": 9105,
424
+ "sha256": "351a491b18e6ada481d318a93be7cc80af63f183e9c66f247f193e8bd4627106",
425
+ "executable": false
426
+ },
427
+ {
428
+ "path": "host/node_modules/node-pty/lib/windowsPtyAgent.test.js",
429
+ "size": 4147,
430
+ "sha256": "4c83dd76ec446031876dc81869e4c204715f72c0ba7ba3389e10b390b6d08da1",
431
+ "executable": false
432
+ },
433
+ {
434
+ "path": "host/node_modules/node-pty/lib/windowsPtyAgent.test.js.map",
435
+ "size": 2951,
436
+ "sha256": "1fbfffca813225c86f4a42b3e467a6b3c1a19885db5748d01e8b06d7df82ad94",
437
+ "executable": false
438
+ },
439
+ {
440
+ "path": "host/node_modules/node-pty/lib/windowsTerminal.js",
441
+ "size": 7852,
442
+ "sha256": "c3a65716f53fed0135a8a633373d5f9c2ab092544d651f27ef0a67096dd3bcd9",
443
+ "executable": false
444
+ },
445
+ {
446
+ "path": "host/node_modules/node-pty/lib/windowsTerminal.js.map",
447
+ "size": 5021,
448
+ "sha256": "ad8425423f7cb4b7c405e7275e02c628e2c9df21287413a7cfce1ffcbb997be8",
449
+ "executable": false
450
+ },
451
+ {
452
+ "path": "host/node_modules/node-pty/lib/windowsTerminal.test.js",
453
+ "size": 10760,
454
+ "sha256": "325567d8d6b461df3d3b7990a51bac09f662733988df653de7ee9113880e67a3",
455
+ "executable": false
456
+ },
457
+ {
458
+ "path": "host/node_modules/node-pty/lib/windowsTerminal.test.js.map",
459
+ "size": 8847,
460
+ "sha256": "2a3a29c938a8af86827bd1af33a34da1039f36559e68575ae734a07975a956d3",
461
+ "executable": false
462
+ },
463
+ {
464
+ "path": "host/node_modules/node-pty/lib/worker/conoutSocketWorker.js",
465
+ "size": 848,
466
+ "sha256": "3e4bac095ac3870c3248a7302f5d10217de625f30c32b7000fe48a34788e47ac",
467
+ "executable": false
468
+ },
469
+ {
470
+ "path": "host/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map",
471
+ "size": 635,
472
+ "sha256": "b90f0ea24f182b1be7875070eafc360f91c9d9d5c997815453a117db52fd4250",
473
+ "executable": false
474
+ },
475
+ {
476
+ "path": "host/node_modules/node-pty/package.json",
477
+ "size": 1615,
478
+ "sha256": "f8b6a14f7022c14f1cd5d109486f5dacd32bffb63a9a63e38eced37dacb47439",
479
+ "executable": false
480
+ },
481
+ {
482
+ "path": "host/node_modules/node-pty/prebuilds/darwin-arm64/pty.node",
483
+ "size": 85496,
484
+ "sha256": "e6457d66f45af3facd02920a5b212164e80fe0bb758afe6e6eab1eceeba3fc9a",
485
+ "executable": false
486
+ },
487
+ {
488
+ "path": "host/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper",
489
+ "size": 50480,
490
+ "sha256": "21c589109bca43e287df884f3c34ab888033a83927ea7d273949ac5030583f26",
491
+ "executable": true
492
+ },
493
+ {
494
+ "path": "host/schema.sql",
495
+ "size": 4302,
496
+ "sha256": "bf73d90f00b9502f4bd100ed0ed8f843fce96cbcd2dba862d9446bf5ac087db8",
497
+ "executable": false
498
+ }
499
+ ]
500
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "format": 1,
3
+ "algorithm": "ed25519",
4
+ "keyId": "b2ee887bfe3ff5f5",
5
+ "signature": "i6aRW8Bvrvj2kYb/fMI3yHVi2GWFvRQa2h00Fk4XFXR+P247wcQD9IK9KPcKph9vzSpwst55YjXCP72loxguAg==",
6
+ "comment": "release key \"current\" in packaging/shell/keys.json"
7
+ }
@@ -0,0 +1,140 @@
1
+ # {{APP_NAME}} — a Centralu app
2
+
3
+ This folder is one app. Centralu runs `server.mjs` as an MCP server; people use it through its
4
+ screen (`ui/index.html`) and agents call the same tools as functions. Same tools, one code path.
5
+
6
+ ## Files
7
+
8
+ - `centralu.app.json` — the manifest. `id` is `{{APP_ID}}` and must stay equal to this folder's
9
+ name. `home` is the tool Centralu calls to open the screen. Optionally,
10
+ `"view": { "span": { "cols": 2, "rows": 1 } }` recommends how many grid cells the app's panel takes
11
+ on Centralu's grid (each side 1 to 4; a session panel is 1 × 1). It is only a default: the person's
12
+ own choice, from the panel's top bar or in Settings, comes first, and the window may give the panel
13
+ less. The screen must still work at whatever size it gets.
14
+ - `server.mjs` — the MCP server. Change it.
15
+ - `ui/index.html` — the screen. Change it. It is read on every open, so edits show without a restart.
16
+ - `runtime/` — **generated by Centralu. Never edit, format, move, or read it in full.** It is replaced
17
+ when Centralu updates. Everything you need is imported from `./runtime/centralu-app-runtime.mjs`:
18
+ `McpServer`, `serveStdio`, `z` (zod), `centralu`, `inputRequired`, `acceptedContent`.
19
+
20
+ ## Rules
21
+
22
+ 1. **No installs.** No `npm install`, no `package.json`, no imports other than Node built-ins
23
+ (`node:*`) and the runtime. The app must start with `node server.mjs` alone.
24
+ 2. **Tool names** use letters, digits, `_` or `-`. **Never `__`** (two underscores separate names
25
+ in agent sessions; Centralu drops such tools).
26
+ 3. **Register tools with `centralu.tool(server, name, config, handler)`** (same arguments as
27
+ `server.registerTool`). The handler then knows which call it is serving, which
28
+ `centralu.agent()` needs.
29
+ 4. **Annotate every tool**: `annotations: { readOnlyHint: true }` if it only reads,
30
+ `readOnlyHint: false` if it changes anything. Read-only tools run without asking the person;
31
+ the others follow the session's approval setting. The same hint decides refreshes: every call to
32
+ a tool that is not `readOnlyHint: true` tells this app's open screens to read again (rule 8). A
33
+ read tool left unannotated costs a refresh cycle each time it is called, and screens that re-read
34
+ with it keep refreshing each other.
35
+ 5. **Visibility**: by default a tool is visible to agents and to the screen. A tool only the screen
36
+ should call gets `_meta: { ui: { visibility: ['app'] } }`; one only agents should call gets
37
+ `['model']`.
38
+ 6. **A tool with a screen** gets `_meta: { ui: { resourceUri: 'ui://{{APP_ID}}/…' } }`, and the
39
+ resource is registered with `centralu.uiResource(server, name, uri, new URL('./ui/…', import.meta.url))`.
40
+ The `home` tool must have one and must be visible to the screen.
41
+ 7. **State lives in the server, never in the screen.** Keep it in memory and save it in the data
42
+ folder with `await centralu.readJson(file, fallback)` / `await centralu.writeJson(file, value)`
43
+ (or any file under `centralu.dataDir`). **Never write files into this folder** — a project app's
44
+ folder is committed to git and shared with the team. The screen may not use browser storage
45
+ (it runs in an isolated frame).
46
+ 8. **The screen re-reads, it does not remember.** When anyone calls one of this app's tools that
47
+ is not `readOnlyHint: true`, Centralu sends open screens `centralu/notifications/changed` (the
48
+ screen that made the call does not get it: it already has the answer); the template's screen
49
+ then calls `show` again. Keep that handler, and keep `show` read-only.
50
+ 9. **stdout is the MCP channel.** `console.log` is redirected to stderr for you; never write to
51
+ `process.stdout` yourself. stderr is shown to the person when the app fails.
52
+ 10. **Asking the agent**: inside a tool handler, `await centralu.agent('prompt', { schema, tool })`
53
+ asks the agent of the person using Centralu. Each call runs in a new session under this app
54
+ (the person can read it), with the `safe` approval setting, and returns the agent's final
55
+ answer: text, or with `schema` (a JSON Schema whose top level is an object) JSON of that shape,
56
+ checked by Centralu. Under `safe` the agent reads without asking, but every file write and
57
+ command waits for the person to approve it in that session, so ask the agent for an answer and
58
+ do the writing in your own tool code. Declare `"uses": { "agent": true }` in the manifest for the person's
59
+ default agent, or a list such as `["codex"]` to pick one with `tool`. The prompt reaches the
60
+ agent marked as written by this app, not by the person, so say plainly what you need. A run
61
+ takes seconds to minutes; the helper keeps the call alive while it waits. An app runs one agent
62
+ at a time and at most 5 a minute: put a batch of work into one prompt instead of a loop.
63
+ 11. **Calling another app**: inside a tool handler, `await centralu.callApp('other-app', 'tool', args)`
64
+ calls a tool of another app and returns its answer (JSON if the tool returns structured
65
+ content, else text). Declare the app in `"uses": { "apps": ["other-app"] }`. Only tools open to
66
+ agents (visibility `model`) can be called. A project app reaches apps of its own project first,
67
+ then apps in the person's user folder; an app in the user folder reaches only user-folder apps.
68
+ A chain of apps calling apps stops at 3 calls deep, and an app tool already in the chain cannot
69
+ be called again from inside it.
70
+ 12. **Reading Centralu's data**: inside a tool handler, `await centralu.host('sessions.list')` or
71
+ `await centralu.host('git.status')` returns JSON. These two names are the whole list; declare
72
+ each one you use in `"uses": { "host": [...] }`. `sessions.list` gives this project's sessions
73
+ (the names shown in the sidebar and their states, never the conversations); `git.status` gives this project's branch and changed
74
+ files (project apps only).
75
+
76
+ All three throw an error that says what Centralu answered. The first time the app uses each of them (an
77
+ agent tool, another app, a host name), Centralu asks the person once — on the session's approval card
78
+ when an agent's call started it, on this app's screen when the screen did — and remembers the answer
79
+ until the manifest's `uses` changes. The call waits while the person decides (up to 5 minutes). A
80
+ refusal comes back as that error: show it plainly instead of retrying.
81
+
82
+ ## Dragging an item out of the screen
83
+
84
+ An item the person may want to hand to a session (a card, a row, a record) should be draggable and
85
+ carry two standard types, set in its `dragstart` handler:
86
+
87
+ ```js
88
+ node.draggable = true
89
+ node.addEventListener('dragstart', (e) => {
90
+ e.dataTransfer.setData('text/uri-list', item.url) // the item's address
91
+ e.dataTransfer.setData('text/plain', `#${item.id} ${item.title}`) // one line naming it
92
+ e.dataTransfer.effectAllowed = 'copyMove'
93
+ })
94
+ ```
95
+
96
+ Dropped on a session, it goes into the message at the caret as a Markdown link,
97
+ `[#12 Fix login](https://…)`; with no address, the text goes in as it is. Nothing else is needed:
98
+ the browser does not hand a drag from the screen's frame to Centralu, so Centralu carries it out
99
+ itself. Keep your own types next to these two for drags inside the screen (a card moved between
100
+ columns), and keep the title to one line. If the session cannot use this app's tools (another
101
+ project's session, an untrusted project), the link still goes in and Centralu tells the person why.
102
+
103
+ ## The screen's look
104
+
105
+ Centralu sends the person's theme to the screen (light or dark, their colours), and sends it again
106
+ when they switch. The template's `ui/index.html` already uses it; keep these when you change it:
107
+
108
+ - **The `applyTheme` function** in the page script. It puts the theme on `<html>`: `color-scheme`
109
+ from `theme`, the MCP Apps style variables (`--color-text-primary`, `--color-background-secondary`,
110
+ `--font-sans`, `--font-text-md-size`, `--border-radius-md`, …) and Centralu's own
111
+ (`--centralu-signal`, `--centralu-scrollbar-*`). It reads `app.getHostContext()`, because a change
112
+ notification carries only what changed.
113
+ - **Style with those variables only** — colours, and type and shape too (`--font-text-md-size`,
114
+ `--font-text-md-line-height`, `--font-sans`, `--font-weight-semibold`, `--border-radius-md`,
115
+ `--border-width-regular`, …) — instead of fixed values. Give each its fallback once, in the
116
+ `:root` block at the top of the stylesheet (Centralu's dark values, for the moment before the theme
117
+ arrives), and use those names everywhere below. Then the screen follows light and dark, the
118
+ person's font, line height and text size, and sits on Centralu's background (keep
119
+ `background: transparent` on the page). Spacing has no variable; keep it literal. The roles: `primary` / `secondary` / `tertiary` for
120
+ text and surfaces in falling order; `--color-text-danger` for errors; `--color-text-warning` (the
121
+ same as `--centralu-signal`) only for what waits on the person — it is Centralu's signal colour,
122
+ the strongest thing on screen.
123
+ - **Narrow first.** The screen is often a grid panel about 360–480px wide, or the inline view under
124
+ a tool card. Make it work at that width first: no fixed width over about 320px, rows that wrap
125
+ (`flex-wrap`), and below about 520px side-by-side parts stacked into one column (a media query in
126
+ this page measures the panel). Keep what waits on the person first. Check it at 360px.
127
+ - **The "Centralu's scrollbar" block** in the stylesheet. It draws scrollbars the way Centralu
128
+ does, from the theme. Do not add `scrollbar-color` or `scrollbar-width` outside its `@supports`
129
+ guard: in Chromium they switch the styled scrollbar off.
130
+
131
+ ## Checking your work
132
+
133
+ - Call Centralu's **`check`** tool after changes. It validates the manifest, starts the app, lists
134
+ its tools for real, reads every screen the tools point to, and reports problems (tool names,
135
+ visibility, missing annotations, a `home` without a screen) with the app's stderr.
136
+ - Centralu restarts the app once at the end of your turn if this folder changed; calls in progress
137
+ finish first. Agents in other sessions see changed tools from their next turn (Claude) or next
138
+ thread (Codex).
139
+ - Errors in `server.mjs` are printed with file and line. A failure inside `runtime/` is almost always
140
+ a wrong argument from `server.mjs` — look at the first frame outside `runtime/`.