gipity 1.0.347 → 1.0.356

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 (390) hide show
  1. package/README.md +1 -1
  2. package/dist/adopt-cwd.js +1 -0
  3. package/dist/commands/add.js +136 -9
  4. package/dist/commands/logs.js +79 -0
  5. package/dist/commands/page-eval.js +31 -0
  6. package/dist/commands/page-inspect.js +91 -62
  7. package/dist/commands/page-screenshot.js +1 -1
  8. package/dist/commands/page.js +18 -0
  9. package/dist/commands/project.js +1 -0
  10. package/dist/commands/workflow.js +63 -16
  11. package/dist/flag-aliases.js +41 -2
  12. package/dist/index.js +3 -4
  13. package/dist/knowledge.js +5 -4
  14. package/dist/project-setup.js +24 -0
  15. package/dist/setup.js +1 -1
  16. package/dist/template-vars.js +156 -0
  17. package/package.json +7 -6
  18. package/dist/__tests__/adopt-cwd.test.d.ts +0 -1
  19. package/dist/__tests__/adopt-cwd.test.js +0 -176
  20. package/dist/__tests__/adopt-cwd.test.js.map +0 -1
  21. package/dist/__tests__/capture-transcript.test.d.ts +0 -1
  22. package/dist/__tests__/capture-transcript.test.js +0 -92
  23. package/dist/__tests__/capture-transcript.test.js.map +0 -1
  24. package/dist/__tests__/claude-noninteractive.test.d.ts +0 -1
  25. package/dist/__tests__/claude-noninteractive.test.js +0 -92
  26. package/dist/__tests__/claude-noninteractive.test.js.map +0 -1
  27. package/dist/__tests__/claude-trust.test.d.ts +0 -1
  28. package/dist/__tests__/claude-trust.test.js +0 -71
  29. package/dist/__tests__/claude-trust.test.js.map +0 -1
  30. package/dist/__tests__/cli-cmd-add.test.d.ts +0 -1
  31. package/dist/__tests__/cli-cmd-add.test.js +0 -45
  32. package/dist/__tests__/cli-cmd-add.test.js.map +0 -1
  33. package/dist/__tests__/cli-cmd-agent.test.d.ts +0 -1
  34. package/dist/__tests__/cli-cmd-agent.test.js +0 -76
  35. package/dist/__tests__/cli-cmd-agent.test.js.map +0 -1
  36. package/dist/__tests__/cli-cmd-approval.test.d.ts +0 -1
  37. package/dist/__tests__/cli-cmd-approval.test.js +0 -47
  38. package/dist/__tests__/cli-cmd-approval.test.js.map +0 -1
  39. package/dist/__tests__/cli-cmd-audit.test.d.ts +0 -1
  40. package/dist/__tests__/cli-cmd-audit.test.js +0 -33
  41. package/dist/__tests__/cli-cmd-audit.test.js.map +0 -1
  42. package/dist/__tests__/cli-cmd-chat.test.d.ts +0 -1
  43. package/dist/__tests__/cli-cmd-chat.test.js +0 -94
  44. package/dist/__tests__/cli-cmd-chat.test.js.map +0 -1
  45. package/dist/__tests__/cli-cmd-credits.test.d.ts +0 -1
  46. package/dist/__tests__/cli-cmd-credits.test.js +0 -66
  47. package/dist/__tests__/cli-cmd-credits.test.js.map +0 -1
  48. package/dist/__tests__/cli-cmd-db.test.d.ts +0 -1
  49. package/dist/__tests__/cli-cmd-db.test.js +0 -95
  50. package/dist/__tests__/cli-cmd-db.test.js.map +0 -1
  51. package/dist/__tests__/cli-cmd-deploy.test.d.ts +0 -1
  52. package/dist/__tests__/cli-cmd-deploy.test.js +0 -53
  53. package/dist/__tests__/cli-cmd-deploy.test.js.map +0 -1
  54. package/dist/__tests__/cli-cmd-domain.test.d.ts +0 -1
  55. package/dist/__tests__/cli-cmd-domain.test.js +0 -73
  56. package/dist/__tests__/cli-cmd-domain.test.js.map +0 -1
  57. package/dist/__tests__/cli-cmd-email.test.d.ts +0 -1
  58. package/dist/__tests__/cli-cmd-email.test.js +0 -31
  59. package/dist/__tests__/cli-cmd-email.test.js.map +0 -1
  60. package/dist/__tests__/cli-cmd-file.test.d.ts +0 -1
  61. package/dist/__tests__/cli-cmd-file.test.js +0 -86
  62. package/dist/__tests__/cli-cmd-file.test.js.map +0 -1
  63. package/dist/__tests__/cli-cmd-fn.test.d.ts +0 -1
  64. package/dist/__tests__/cli-cmd-fn.test.js +0 -50
  65. package/dist/__tests__/cli-cmd-fn.test.js.map +0 -1
  66. package/dist/__tests__/cli-cmd-generate.test.d.ts +0 -1
  67. package/dist/__tests__/cli-cmd-generate.test.js +0 -46
  68. package/dist/__tests__/cli-cmd-generate.test.js.map +0 -1
  69. package/dist/__tests__/cli-cmd-gmail.test.d.ts +0 -1
  70. package/dist/__tests__/cli-cmd-gmail.test.js +0 -49
  71. package/dist/__tests__/cli-cmd-gmail.test.js.map +0 -1
  72. package/dist/__tests__/cli-cmd-info.test.d.ts +0 -1
  73. package/dist/__tests__/cli-cmd-info.test.js +0 -52
  74. package/dist/__tests__/cli-cmd-info.test.js.map +0 -1
  75. package/dist/__tests__/cli-cmd-init.test.d.ts +0 -1
  76. package/dist/__tests__/cli-cmd-init.test.js +0 -76
  77. package/dist/__tests__/cli-cmd-init.test.js.map +0 -1
  78. package/dist/__tests__/cli-cmd-job.test.d.ts +0 -1
  79. package/dist/__tests__/cli-cmd-job.test.js +0 -204
  80. package/dist/__tests__/cli-cmd-job.test.js.map +0 -1
  81. package/dist/__tests__/cli-cmd-location.test.d.ts +0 -1
  82. package/dist/__tests__/cli-cmd-location.test.js +0 -58
  83. package/dist/__tests__/cli-cmd-location.test.js.map +0 -1
  84. package/dist/__tests__/cli-cmd-login.test.d.ts +0 -1
  85. package/dist/__tests__/cli-cmd-login.test.js +0 -41
  86. package/dist/__tests__/cli-cmd-login.test.js.map +0 -1
  87. package/dist/__tests__/cli-cmd-logout.test.d.ts +0 -1
  88. package/dist/__tests__/cli-cmd-logout.test.js +0 -20
  89. package/dist/__tests__/cli-cmd-logout.test.js.map +0 -1
  90. package/dist/__tests__/cli-cmd-logs.test.d.ts +0 -1
  91. package/dist/__tests__/cli-cmd-logs.test.js +0 -40
  92. package/dist/__tests__/cli-cmd-logs.test.js.map +0 -1
  93. package/dist/__tests__/cli-cmd-memory.test.d.ts +0 -1
  94. package/dist/__tests__/cli-cmd-memory.test.js +0 -58
  95. package/dist/__tests__/cli-cmd-memory.test.js.map +0 -1
  96. package/dist/__tests__/cli-cmd-page-inspect.test.d.ts +0 -1
  97. package/dist/__tests__/cli-cmd-page-inspect.test.js +0 -47
  98. package/dist/__tests__/cli-cmd-page-inspect.test.js.map +0 -1
  99. package/dist/__tests__/cli-cmd-plan.test.d.ts +0 -1
  100. package/dist/__tests__/cli-cmd-plan.test.js +0 -81
  101. package/dist/__tests__/cli-cmd-plan.test.js.map +0 -1
  102. package/dist/__tests__/cli-cmd-project.test.d.ts +0 -1
  103. package/dist/__tests__/cli-cmd-project.test.js +0 -61
  104. package/dist/__tests__/cli-cmd-project.test.js.map +0 -1
  105. package/dist/__tests__/cli-cmd-rbac.test.d.ts +0 -1
  106. package/dist/__tests__/cli-cmd-rbac.test.js +0 -39
  107. package/dist/__tests__/cli-cmd-rbac.test.js.map +0 -1
  108. package/dist/__tests__/cli-cmd-realtime.test.d.ts +0 -1
  109. package/dist/__tests__/cli-cmd-realtime.test.js +0 -51
  110. package/dist/__tests__/cli-cmd-realtime.test.js.map +0 -1
  111. package/dist/__tests__/cli-cmd-records.test.d.ts +0 -1
  112. package/dist/__tests__/cli-cmd-records.test.js +0 -67
  113. package/dist/__tests__/cli-cmd-records.test.js.map +0 -1
  114. package/dist/__tests__/cli-cmd-relay.test.d.ts +0 -1
  115. package/dist/__tests__/cli-cmd-relay.test.js +0 -100
  116. package/dist/__tests__/cli-cmd-relay.test.js.map +0 -1
  117. package/dist/__tests__/cli-cmd-sandbox.test.d.ts +0 -1
  118. package/dist/__tests__/cli-cmd-sandbox.test.js +0 -46
  119. package/dist/__tests__/cli-cmd-sandbox.test.js.map +0 -1
  120. package/dist/__tests__/cli-cmd-scaffold.test.d.ts +0 -1
  121. package/dist/__tests__/cli-cmd-scaffold.test.js +0 -30
  122. package/dist/__tests__/cli-cmd-scaffold.test.js.map +0 -1
  123. package/dist/__tests__/cli-cmd-skill.test.d.ts +0 -1
  124. package/dist/__tests__/cli-cmd-skill.test.js +0 -40
  125. package/dist/__tests__/cli-cmd-skill.test.js.map +0 -1
  126. package/dist/__tests__/cli-cmd-test.test.d.ts +0 -1
  127. package/dist/__tests__/cli-cmd-test.test.js +0 -58
  128. package/dist/__tests__/cli-cmd-test.test.js.map +0 -1
  129. package/dist/__tests__/cli-cmd-workflow.test.d.ts +0 -1
  130. package/dist/__tests__/cli-cmd-workflow.test.js +0 -84
  131. package/dist/__tests__/cli-cmd-workflow.test.js.map +0 -1
  132. package/dist/__tests__/cli-e2e-live.test.d.ts +0 -1
  133. package/dist/__tests__/cli-e2e-live.test.js +0 -144
  134. package/dist/__tests__/cli-e2e-live.test.js.map +0 -1
  135. package/dist/__tests__/cli-smoke.test.d.ts +0 -1
  136. package/dist/__tests__/cli-smoke.test.js +0 -69
  137. package/dist/__tests__/cli-smoke.test.js.map +0 -1
  138. package/dist/__tests__/config.test.d.ts +0 -1
  139. package/dist/__tests__/config.test.js +0 -95
  140. package/dist/__tests__/config.test.js.map +0 -1
  141. package/dist/__tests__/flag-aliases.test.d.ts +0 -1
  142. package/dist/__tests__/flag-aliases.test.js +0 -33
  143. package/dist/__tests__/flag-aliases.test.js.map +0 -1
  144. package/dist/__tests__/helpers/mock-server.d.ts +0 -52
  145. package/dist/__tests__/helpers/mock-server.js +0 -86
  146. package/dist/__tests__/helpers/mock-server.js.map +0 -1
  147. package/dist/__tests__/helpers/spawn-cli.d.ts +0 -30
  148. package/dist/__tests__/helpers/spawn-cli.js +0 -72
  149. package/dist/__tests__/helpers/spawn-cli.js.map +0 -1
  150. package/dist/__tests__/helpers/test-home.d.ts +0 -22
  151. package/dist/__tests__/helpers/test-home.js +0 -35
  152. package/dist/__tests__/helpers/test-home.js.map +0 -1
  153. package/dist/__tests__/hook-capture.test.d.ts +0 -1
  154. package/dist/__tests__/hook-capture.test.js +0 -65
  155. package/dist/__tests__/hook-capture.test.js.map +0 -1
  156. package/dist/__tests__/prompts.test.d.ts +0 -1
  157. package/dist/__tests__/prompts.test.js +0 -129
  158. package/dist/__tests__/prompts.test.js.map +0 -1
  159. package/dist/__tests__/push-cas.test.d.ts +0 -1
  160. package/dist/__tests__/push-cas.test.js +0 -133
  161. package/dist/__tests__/push-cas.test.js.map +0 -1
  162. package/dist/__tests__/relay-bridge-abort.test.d.ts +0 -1
  163. package/dist/__tests__/relay-bridge-abort.test.js +0 -65
  164. package/dist/__tests__/relay-bridge-abort.test.js.map +0 -1
  165. package/dist/__tests__/relay-daemon.test.d.ts +0 -1
  166. package/dist/__tests__/relay-daemon.test.js +0 -232
  167. package/dist/__tests__/relay-daemon.test.js.map +0 -1
  168. package/dist/__tests__/relay-ingest-contract.test.d.ts +0 -1
  169. package/dist/__tests__/relay-ingest-contract.test.js +0 -76
  170. package/dist/__tests__/relay-ingest-contract.test.js.map +0 -1
  171. package/dist/__tests__/relay-installers.test.d.ts +0 -1
  172. package/dist/__tests__/relay-installers.test.js +0 -95
  173. package/dist/__tests__/relay-installers.test.js.map +0 -1
  174. package/dist/__tests__/relay-machine-id.test.d.ts +0 -1
  175. package/dist/__tests__/relay-machine-id.test.js +0 -41
  176. package/dist/__tests__/relay-machine-id.test.js.map +0 -1
  177. package/dist/__tests__/relay-pair.test.d.ts +0 -1
  178. package/dist/__tests__/relay-pair.test.js.map +0 -1
  179. package/dist/__tests__/relay-redact.test.d.ts +0 -1
  180. package/dist/__tests__/relay-redact.test.js +0 -78
  181. package/dist/__tests__/relay-redact.test.js.map +0 -1
  182. package/dist/__tests__/relay-state.test.d.ts +0 -1
  183. package/dist/__tests__/relay-state.test.js +0 -85
  184. package/dist/__tests__/relay-state.test.js.map +0 -1
  185. package/dist/__tests__/setup-skills-block.test.d.ts +0 -1
  186. package/dist/__tests__/setup-skills-block.test.js +0 -65
  187. package/dist/__tests__/setup-skills-block.test.js.map +0 -1
  188. package/dist/__tests__/stream-json.test.d.ts +0 -1
  189. package/dist/__tests__/stream-json.test.js +0 -186
  190. package/dist/__tests__/stream-json.test.js.map +0 -1
  191. package/dist/__tests__/sync-apply.test.d.ts +0 -1
  192. package/dist/__tests__/sync-apply.test.js +0 -457
  193. package/dist/__tests__/sync-apply.test.js.map +0 -1
  194. package/dist/__tests__/sync-lock.test.d.ts +0 -1
  195. package/dist/__tests__/sync-lock.test.js +0 -105
  196. package/dist/__tests__/sync-lock.test.js.map +0 -1
  197. package/dist/__tests__/sync.test.d.ts +0 -1
  198. package/dist/__tests__/sync.test.js +0 -160
  199. package/dist/__tests__/sync.test.js.map +0 -1
  200. package/dist/__tests__/updater.test.d.ts +0 -1
  201. package/dist/__tests__/updater.test.js +0 -95
  202. package/dist/__tests__/updater.test.js.map +0 -1
  203. package/dist/__tests__/upload.test.d.ts +0 -1
  204. package/dist/__tests__/upload.test.js +0 -92
  205. package/dist/__tests__/upload.test.js.map +0 -1
  206. package/dist/__tests__/utils.test.d.ts +0 -1
  207. package/dist/__tests__/utils.test.js +0 -69
  208. package/dist/__tests__/utils.test.js.map +0 -1
  209. package/dist/adopt-cwd.d.ts +0 -69
  210. package/dist/adopt-cwd.js.map +0 -1
  211. package/dist/api.d.ts +0 -41
  212. package/dist/api.js.map +0 -1
  213. package/dist/auth.d.ts +0 -17
  214. package/dist/auth.js.map +0 -1
  215. package/dist/banner.d.ts +0 -6
  216. package/dist/banner.js.map +0 -1
  217. package/dist/capture/sources/claude-code.d.ts +0 -78
  218. package/dist/capture/sources/claude-code.js.map +0 -1
  219. package/dist/coding-guidelines.d.ts +0 -9
  220. package/dist/coding-guidelines.js.map +0 -1
  221. package/dist/colors.d.ts +0 -22
  222. package/dist/colors.js.map +0 -1
  223. package/dist/commands/add.d.ts +0 -2
  224. package/dist/commands/add.js.map +0 -1
  225. package/dist/commands/agent.d.ts +0 -2
  226. package/dist/commands/agent.js.map +0 -1
  227. package/dist/commands/api.d.ts +0 -1
  228. package/dist/commands/api.js.map +0 -1
  229. package/dist/commands/approval.d.ts +0 -2
  230. package/dist/commands/approval.js.map +0 -1
  231. package/dist/commands/audit.d.ts +0 -2
  232. package/dist/commands/audit.js.map +0 -1
  233. package/dist/commands/browser.d.ts +0 -2
  234. package/dist/commands/browser.js.map +0 -1
  235. package/dist/commands/chat.d.ts +0 -2
  236. package/dist/commands/chat.js.map +0 -1
  237. package/dist/commands/checkpoint.d.ts +0 -2
  238. package/dist/commands/checkpoint.js.map +0 -1
  239. package/dist/commands/claude.d.ts +0 -16
  240. package/dist/commands/claude.js.map +0 -1
  241. package/dist/commands/credits.d.ts +0 -2
  242. package/dist/commands/credits.js.map +0 -1
  243. package/dist/commands/db.d.ts +0 -2
  244. package/dist/commands/db.js.map +0 -1
  245. package/dist/commands/deploy.d.ts +0 -2
  246. package/dist/commands/deploy.js.map +0 -1
  247. package/dist/commands/doctor.d.ts +0 -2
  248. package/dist/commands/doctor.js.map +0 -1
  249. package/dist/commands/domain.d.ts +0 -2
  250. package/dist/commands/domain.js.map +0 -1
  251. package/dist/commands/email.d.ts +0 -2
  252. package/dist/commands/email.js.map +0 -1
  253. package/dist/commands/file.d.ts +0 -2
  254. package/dist/commands/file.js.map +0 -1
  255. package/dist/commands/fn.d.ts +0 -2
  256. package/dist/commands/fn.js.map +0 -1
  257. package/dist/commands/generate.d.ts +0 -2
  258. package/dist/commands/generate.js.map +0 -1
  259. package/dist/commands/gmail.d.ts +0 -2
  260. package/dist/commands/gmail.js.map +0 -1
  261. package/dist/commands/hook-capture.d.ts +0 -15
  262. package/dist/commands/hook-capture.js.map +0 -1
  263. package/dist/commands/init.d.ts +0 -2
  264. package/dist/commands/init.js.map +0 -1
  265. package/dist/commands/job.d.ts +0 -2
  266. package/dist/commands/job.js.map +0 -1
  267. package/dist/commands/location.d.ts +0 -9
  268. package/dist/commands/location.js.map +0 -1
  269. package/dist/commands/login.d.ts +0 -2
  270. package/dist/commands/login.js.map +0 -1
  271. package/dist/commands/logout.d.ts +0 -2
  272. package/dist/commands/logout.js.map +0 -1
  273. package/dist/commands/logs.d.ts +0 -2
  274. package/dist/commands/logs.js.map +0 -1
  275. package/dist/commands/memory.d.ts +0 -2
  276. package/dist/commands/memory.js.map +0 -1
  277. package/dist/commands/page-inspect.d.ts +0 -2
  278. package/dist/commands/page-inspect.js.map +0 -1
  279. package/dist/commands/page-screenshot.d.ts +0 -2
  280. package/dist/commands/page-screenshot.js.map +0 -1
  281. package/dist/commands/plan.d.ts +0 -2
  282. package/dist/commands/plan.js.map +0 -1
  283. package/dist/commands/project.d.ts +0 -2
  284. package/dist/commands/project.js.map +0 -1
  285. package/dist/commands/push.d.ts +0 -2
  286. package/dist/commands/push.js.map +0 -1
  287. package/dist/commands/rbac.d.ts +0 -2
  288. package/dist/commands/rbac.js.map +0 -1
  289. package/dist/commands/realtime.d.ts +0 -2
  290. package/dist/commands/realtime.js.map +0 -1
  291. package/dist/commands/records.d.ts +0 -2
  292. package/dist/commands/records.js.map +0 -1
  293. package/dist/commands/relay-install.d.ts +0 -11
  294. package/dist/commands/relay-install.js.map +0 -1
  295. package/dist/commands/relay.d.ts +0 -9
  296. package/dist/commands/relay.js.map +0 -1
  297. package/dist/commands/sandbox.d.ts +0 -2
  298. package/dist/commands/sandbox.js.map +0 -1
  299. package/dist/commands/scaffold.d.ts +0 -2
  300. package/dist/commands/scaffold.js.map +0 -1
  301. package/dist/commands/skill.d.ts +0 -2
  302. package/dist/commands/skill.js.map +0 -1
  303. package/dist/commands/skills.d.ts +0 -2
  304. package/dist/commands/skills.js.map +0 -1
  305. package/dist/commands/start-cc.d.ts +0 -2
  306. package/dist/commands/start-cc.js.map +0 -1
  307. package/dist/commands/status.d.ts +0 -2
  308. package/dist/commands/status.js.map +0 -1
  309. package/dist/commands/sync.d.ts +0 -2
  310. package/dist/commands/sync.js.map +0 -1
  311. package/dist/commands/test.d.ts +0 -2
  312. package/dist/commands/test.js.map +0 -1
  313. package/dist/commands/uninstall.d.ts +0 -10
  314. package/dist/commands/uninstall.js.map +0 -1
  315. package/dist/commands/update.d.ts +0 -2
  316. package/dist/commands/update.js.map +0 -1
  317. package/dist/commands/upload.d.ts +0 -2
  318. package/dist/commands/upload.js.map +0 -1
  319. package/dist/commands/workflow.d.ts +0 -2
  320. package/dist/commands/workflow.js.map +0 -1
  321. package/dist/config.d.ts +0 -39
  322. package/dist/config.js.map +0 -1
  323. package/dist/flag-aliases.d.ts +0 -12
  324. package/dist/flag-aliases.js.map +0 -1
  325. package/dist/gip3dw-guide.d.ts +0 -7
  326. package/dist/gip3dw-guide.js.map +0 -1
  327. package/dist/gipcc.d.ts +0 -2
  328. package/dist/gipcc.js.map +0 -1
  329. package/dist/gipccd.d.ts +0 -2
  330. package/dist/gipccd.js.map +0 -1
  331. package/dist/help-skills.d.ts +0 -7
  332. package/dist/help-skills.js.map +0 -1
  333. package/dist/helpers/command.d.ts +0 -12
  334. package/dist/helpers/command.js.map +0 -1
  335. package/dist/helpers/index.d.ts +0 -6
  336. package/dist/helpers/index.js.map +0 -1
  337. package/dist/helpers/output.d.ts +0 -22
  338. package/dist/helpers/output.js.map +0 -1
  339. package/dist/helpers/sync.d.ts +0 -13
  340. package/dist/helpers/sync.js.map +0 -1
  341. package/dist/hooks/capture-runner.d.ts +0 -24
  342. package/dist/hooks/capture-runner.js.map +0 -1
  343. package/dist/index.d.ts +0 -2
  344. package/dist/index.js.map +0 -1
  345. package/dist/knowledge.d.ts +0 -11
  346. package/dist/knowledge.js.map +0 -1
  347. package/dist/platform-overview.d.ts +0 -9
  348. package/dist/platform-overview.js.map +0 -1
  349. package/dist/project-setup.d.ts +0 -26
  350. package/dist/project-setup.js.map +0 -1
  351. package/dist/prompts.d.ts +0 -80
  352. package/dist/prompts.js.map +0 -1
  353. package/dist/provider-docs.d.ts +0 -27
  354. package/dist/provider-docs.js.map +0 -1
  355. package/dist/relay/daemon.d.ts +0 -47
  356. package/dist/relay/daemon.js.map +0 -1
  357. package/dist/relay/device-http.d.ts +0 -9
  358. package/dist/relay/device-http.js.map +0 -1
  359. package/dist/relay/installers.d.ts +0 -24
  360. package/dist/relay/installers.js.map +0 -1
  361. package/dist/relay/machine-id.d.ts +0 -2
  362. package/dist/relay/machine-id.js.map +0 -1
  363. package/dist/relay/onboarding.d.ts +0 -8
  364. package/dist/relay/onboarding.js.map +0 -1
  365. package/dist/relay/paths.d.ts +0 -5
  366. package/dist/relay/paths.js.map +0 -1
  367. package/dist/relay/redact.d.ts +0 -34
  368. package/dist/relay/redact.js.map +0 -1
  369. package/dist/relay/state.d.ts +0 -39
  370. package/dist/relay/state.js.map +0 -1
  371. package/dist/relay/stream-json.d.ts +0 -105
  372. package/dist/relay/stream-json.js.map +0 -1
  373. package/dist/relay/transcripts.d.ts +0 -60
  374. package/dist/relay/transcripts.js.map +0 -1
  375. package/dist/setup.d.ts +0 -101
  376. package/dist/setup.js.map +0 -1
  377. package/dist/sync.d.ts +0 -74
  378. package/dist/sync.js.map +0 -1
  379. package/dist/updater/bootstrap.d.ts +0 -13
  380. package/dist/updater/bootstrap.js.map +0 -1
  381. package/dist/updater/check.d.ts +0 -12
  382. package/dist/updater/check.js.map +0 -1
  383. package/dist/updater/shim.d.ts +0 -2
  384. package/dist/updater/shim.js.map +0 -1
  385. package/dist/updater/state.d.ts +0 -24
  386. package/dist/updater/state.js.map +0 -1
  387. package/dist/upload.d.ts +0 -40
  388. package/dist/upload.js.map +0 -1
  389. package/dist/utils.d.ts +0 -39
  390. package/dist/utils.js.map +0 -1
@@ -4,9 +4,13 @@
4
4
  * rewriting argv before commander parses, so `--help` output is unchanged.
5
5
  *
6
6
  * Rules for adding an alias:
7
- * - Must be globally unambiguous across all subcommands.
8
7
  * - Must be a plausible LLM guess, not a typo fix.
9
8
  * - Never alias short flags.
9
+ * - May collide with a real flag on a specific command (e.g. `--from` is a
10
+ * friendly alias for `--since` on `logs`, but a real required option on
11
+ * `workflow create`). Pass the resolved `program` to normalizeAliases and a
12
+ * token is left untouched whenever the command it targets declares it for
13
+ * real — so the real option always wins on the command that owns it.
10
14
  */
11
15
  export const FLAG_ALIASES = {
12
16
  '--out': '--output',
@@ -28,17 +32,52 @@ export const FLAG_ALIASES = {
28
32
  '--after': '--since',
29
33
  '--delay': '--wait',
30
34
  };
31
- export function normalizeAliases(argv) {
35
+ export function normalizeAliases(argv, program) {
36
+ // Flags the targeted command declares for real — never alias these, so a
37
+ // command's own option always wins over a global guess.
38
+ const realFlags = program ? collectRealFlags(argv, program) : new Set();
32
39
  return argv.map(tok => {
33
40
  if (!tok.startsWith('--'))
34
41
  return tok;
35
42
  const eq = tok.indexOf('=');
36
43
  if (eq > 0) {
37
44
  const name = tok.slice(0, eq);
45
+ if (realFlags.has(name))
46
+ return tok;
38
47
  const canonical = FLAG_ALIASES[name];
39
48
  return canonical ? `${canonical}${tok.slice(eq)}` : tok;
40
49
  }
50
+ if (realFlags.has(tok))
51
+ return tok;
41
52
  return FLAG_ALIASES[tok] ?? tok;
42
53
  });
43
54
  }
55
+ /**
56
+ * Resolve the deepest subcommand argv targets (descending program → command →
57
+ * subcommand by name/alias) and return every long flag declared on it and its
58
+ * ancestors. Used to suppress an alias when the resolved command owns that flag.
59
+ */
60
+ function collectRealFlags(argv, program) {
61
+ // process.argv is [node, script, ...args]; start scanning at the first arg.
62
+ const args = argv.slice(2);
63
+ let cmd = program;
64
+ const chain = [program];
65
+ for (const tok of args) {
66
+ if (tok.startsWith('-'))
67
+ break; // first flag ends command resolution
68
+ const next = cmd.commands.find(c => c.name() === tok || c.aliases().includes(tok));
69
+ if (!next)
70
+ break;
71
+ cmd = next;
72
+ chain.push(next);
73
+ }
74
+ const flags = new Set();
75
+ for (const c of chain) {
76
+ for (const opt of c.options) {
77
+ if (opt.long)
78
+ flags.add(opt.long);
79
+ }
80
+ }
81
+ return flags;
82
+ }
44
83
  //# sourceMappingURL=flag-aliases.js.map
package/dist/index.js CHANGED
@@ -28,8 +28,7 @@ import { fileCommand } from './commands/file.js';
28
28
  import { claudeCommand } from './commands/claude.js';
29
29
  import { addCommand } from './commands/add.js';
30
30
  import { logsCommand } from './commands/logs.js';
31
- import { pageInspectCommand } from './commands/page-inspect.js';
32
- import { pageScreenshotCommand } from './commands/page-screenshot.js';
31
+ import { pageCommand } from './commands/page.js';
33
32
  import { recordsCommand } from './commands/records.js';
34
33
  import { fnCommand } from './commands/fn.js';
35
34
  import { jobCommand } from './commands/job.js';
@@ -97,7 +96,7 @@ const connectGroup = [claudeCommand, relayCommand];
97
96
  const projectGroup = [domainCommand, statusCommand, initCommand];
98
97
  const filesGroup = [fileCommand, syncCommand, pushCommand, uploadCommand];
99
98
  const appBuildingGroup = [testCommand, fnCommand, jobCommand, dbCommand, logsCommand, workflowCommand, realtimeCommand, rbacCommand, auditCommand, recordsCommand];
100
- const utilitiesGroup = [pageInspectCommand, pageScreenshotCommand, sandboxCommand, generateCommand, emailCommand, gmailCommand, locationCommand];
99
+ const utilitiesGroup = [pageCommand, sandboxCommand, generateCommand, emailCommand, gmailCommand, locationCommand];
101
100
  const agentGroup = [chatCommand, memoryCommand, agentCommand, approvalCommand];
102
101
  const setupGroup = [loginCommand, logoutCommand, creditsCommand, planCommand, doctorCommand, updateCommand, uninstallCommand];
103
102
  const HELP_SECTIONS = [
@@ -183,5 +182,5 @@ if (mappedCmd) {
183
182
  process.exit(0);
184
183
  }
185
184
  }
186
- program.parse(normalizeAliases(process.argv));
185
+ program.parse(normalizeAliases(process.argv, program));
187
186
  //# sourceMappingURL=index.js.map
package/dist/knowledge.js CHANGED
@@ -52,11 +52,11 @@ Gipity ships its own services for things apps usually pull from a third party -
52
52
 
53
53
  The full rule and definition of done are injected at the top of every session context. In short: if the user asks you to build something deployable (web app, game, API), run \`gipity add <template>\` first (default \`web-simple\`); if it's a one-off task (analysis, PDFs, data work), use \`gipity sandbox run\` instead. To add a reusable building block to an existing app (e.g. multiplayer), \`gipity add <kit>\`.
54
54
 
55
- Build loop: \`gipity add\` → edit files → \`gipity deploy dev\` → \`gipity page-inspect <url>\` → fix any errors → repeat until the definition of done is met.
55
+ Build loop: \`gipity add\` → edit files → \`gipity deploy dev\` → \`gipity page inspect <url>\` → fix any errors → repeat until the definition of done is met.
56
56
 
57
57
  ## CLI quick reference
58
58
 
59
- Key commands: \`gipity add <template|kit>\`, \`gipity deploy dev\`, \`gipity sandbox run\`, \`gipity page-inspect <url>\`, \`gipity db query "SQL"\`, \`gipity fn call <name>\`, \`gipity logs fn <name>\`, \`gipity skill read <name>\`.
59
+ Key commands: \`gipity add <template|kit>\`, \`gipity deploy dev\`, \`gipity sandbox run\`, \`gipity page inspect <url>\`, \`gipity db query "SQL"\`, \`gipity fn call <name>\`, \`gipity logs fn <name>\`, \`gipity skill read <name>\`.
60
60
  Run \`gipity --help\` for the full list. Use \`--help\` on any command for details.
61
61
 
62
62
  ## Files and sync
@@ -79,10 +79,11 @@ App services skills (load before calling \`/services/*\` endpoints):
79
79
  - \`app-video\` - Veo models, aspect, resolution
80
80
 
81
81
  App development skills:
82
- - \`app-debugging\` - debug a deployed app: page-inspect, screenshots, function logs
82
+ - \`app-debugging\` - debug a deployed app: page inspect/eval, screenshots, function logs
83
83
  - \`app-development\` - functions, database, and API
84
84
  - \`deploy\` - the deploy pipeline & gipity.yaml manifest
85
85
  - \`jobs\` - long-running CPU + GPU compute jobs (Python / Node / bash)
86
+ - \`realtime-scheduled-app\` - recipe: realtime presence/messages + DB function + scheduled poster, end-to-end
86
87
  - \`web-app-basics\` - coding guidelines, file structure, HTML/CSS/JS patterns
87
88
 
88
89
  Kit skills (reusable building blocks - \`gipity add <kit>\`):
@@ -93,7 +94,7 @@ Other key skills:
93
94
  - \`tts\` - agent-side speech tools (different from the \`app-tts\` HTTP service)`;
94
95
  export const DEFINITION_OF_DONE = `## Definition of done (build tasks)
95
96
  1. \`gipity deploy dev\` succeeds and you have a live URL.
96
- 2. \`gipity page-inspect <url>\` returns no console errors and the page loads (HTTP 200, no blank screen).
97
+ 2. \`gipity page inspect <url>\` returns no console errors and the page loads (HTTP 200, no blank screen).
97
98
  3. For apps with functions: \`gipity test\` passes.
98
99
  4. You told the user the live URL.
99
100
 
@@ -7,6 +7,8 @@
7
7
  import { clearConfigCache, saveConfigAt, getApiBaseOverride } from './config.js';
8
8
  import { sync } from './sync.js';
9
9
  import { setupClaudeHooks, setupGitignore, SUPPORTED_TOOLS, DEFAULT_SYNC_IGNORE } from './setup.js';
10
+ import { substituteDir } from './template-vars.js';
11
+ import { muted } from './colors.js';
10
12
  /** Write `.gipity.json` in `dir`, chdir into it so the hook/skill writers
11
13
  * target the right place, sync files, and install Claude Code hooks/skills/
12
14
  * gitignore. Returns sync counts so callers can print a summary. */
@@ -23,6 +25,28 @@ export async function finalizeLocalProject(opts) {
23
25
  saveConfigAt(opts.dir, config);
24
26
  process.chdir(opts.dir);
25
27
  clearConfigCache();
28
+ // Resolve `{{PROJECT_GUID}}` / `{{TITLE}}` / `{{ANALYTICS_SCRIPT}}` etc.
29
+ // BEFORE sync uploads. Otherwise a template's placeholder strings would
30
+ // ship verbatim to production (we hit this with karaoke-captions where
31
+ // `APP_GUID` resolved to the literal `'{{PROJECT_GUID}}'` and every API
32
+ // call 404'd). Mirrors what installTemplate does server-side for `gipity
33
+ // add` — keeps the two install paths behaviorally consistent.
34
+ try {
35
+ const sub = await substituteDir(opts.dir, {
36
+ projectGuid: opts.projectGuid,
37
+ projectName: opts.projectName,
38
+ });
39
+ if (sub.changed.length) {
40
+ console.log(muted(`Resolved template vars in ${sub.changed.length} file${sub.changed.length > 1 ? 's' : ''}.`));
41
+ }
42
+ for (const u of sub.unresolved) {
43
+ console.warn(muted(` ${u.path}: unknown placeholder${u.tokens.length > 1 ? 's' : ''} ${u.tokens.join(', ')}`));
44
+ }
45
+ }
46
+ catch (err) {
47
+ // Substitution failure shouldn't block init — log and continue.
48
+ console.warn(muted(`Template substitution skipped: ${err.message}`));
49
+ }
26
50
  let applied = 0;
27
51
  try {
28
52
  const result = await sync({ interactive: opts.interactive ?? false });
package/dist/setup.js CHANGED
@@ -54,7 +54,7 @@ export const PERMISSIONS_SETTINGS = {
54
54
  'Bash(gipity db list *)',
55
55
  'Bash(gipity db create *)',
56
56
  'Bash(gipity memory *)',
57
- 'Bash(gipity page-inspect *)',
57
+ 'Bash(gipity page *)',
58
58
  'Bash(gipity logs *)',
59
59
  'Bash(gipity sandbox *)',
60
60
  'Bash(gipity chat *)',
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Resolve `{{PLACEHOLDER}}` tokens in local template files at `gipity init`
3
+ * time. Mirrors what `installTemplate` does server-side for `gipity add` —
4
+ * keeping the two flows in sync so a template installed via the dev/CLI
5
+ * path doesn't ship literal `{{PROJECT_GUID}}` strings to production.
6
+ *
7
+ * The placeholders + values match `installFromDisk` in
8
+ * `platform/server/src/services/template.ts`. When you add or rename a key
9
+ * there, mirror it here (and add a test).
10
+ */
11
+ import { promises as fs, readdirSync, statSync } from 'fs';
12
+ import { join, relative, extname } from 'path';
13
+ import { isSyncIgnored } from './setup.js';
14
+ /** File extensions we substitute in. Binaries (images, audio, fonts) are
15
+ * skipped. Anything outside this set is left untouched on disk. */
16
+ const SUBSTITUTABLE_EXTS = new Set([
17
+ '.html', '.htm',
18
+ '.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs',
19
+ '.css',
20
+ '.json',
21
+ '.yaml', '.yml',
22
+ '.md',
23
+ '.txt',
24
+ '.xml',
25
+ '.svg',
26
+ ]);
27
+ /** Every placeholder the substitution recognises. Files that don't reference
28
+ * any of these stay untouched. Files that reference one we don't know
29
+ * trigger the test in `__tests__/template-vars.test.ts` so the gap surfaces
30
+ * loudly instead of shipping `{{X}}` literally. */
31
+ export const KNOWN_PLACEHOLDERS = [
32
+ '{{TITLE}}',
33
+ '{{JS_TITLE}}',
34
+ '{{PROJECT_GUID}}',
35
+ '{{DATABASE}}',
36
+ '{{DESCRIPTION_META}}',
37
+ '{{OG_DESCRIPTION}}',
38
+ '{{JSON_LD_BLOCK}}',
39
+ '{{ANALYTICS_SCRIPT}}',
40
+ ];
41
+ function escapeHtml(s) {
42
+ return s
43
+ .replace(/&/g, '&amp;')
44
+ .replace(/</g, '&lt;')
45
+ .replace(/>/g, '&gt;')
46
+ .replace(/"/g, '&quot;')
47
+ .replace(/'/g, '&#39;');
48
+ }
49
+ function jsEscape(s) {
50
+ return s.replace(/\\/g, '\\\\').replace(/'/g, "\\'");
51
+ }
52
+ /** Build the substitution map. Pure — easy to unit-test. */
53
+ export function buildTemplateVars(v) {
54
+ const safeTitle = escapeHtml(v.projectName);
55
+ const safeDesc = v.description ? escapeHtml(v.description) : '';
56
+ const slug = v.projectName.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '').slice(0, 30) || 'my_app';
57
+ const jsonLd = JSON.stringify({
58
+ '@context': 'https://schema.org',
59
+ '@type': 'WebApplication',
60
+ name: v.projectName,
61
+ ...(v.description ? { description: v.description } : {}),
62
+ }, null, 2).replace(/<\//g, '<\\/');
63
+ return {
64
+ '{{TITLE}}': safeTitle,
65
+ '{{JS_TITLE}}': jsEscape(v.projectName),
66
+ '{{PROJECT_GUID}}': v.projectGuid,
67
+ '{{DATABASE}}': slug,
68
+ '{{DESCRIPTION_META}}': v.description ? `\n <meta name="description" content="${safeDesc}">` : '',
69
+ '{{OG_DESCRIPTION}}': v.description ? `\n <meta property="og:description" content="${safeDesc}">` : '',
70
+ '{{JSON_LD_BLOCK}}': `<script type="application/ld+json">\n${jsonLd}\n </script>`,
71
+ '{{ANALYTICS_SCRIPT}}': `<script defer src="https://media.gipity.ai/client/v1/gipity.js" data-app="${v.projectGuid}"></script>`,
72
+ };
73
+ }
74
+ /** Pure string substitution — exported so the test can exercise it without
75
+ * touching the filesystem. */
76
+ export function substituteString(content, vars) {
77
+ let out = content;
78
+ for (const [key, value] of Object.entries(vars)) {
79
+ out = out.replaceAll(key, value);
80
+ }
81
+ return out;
82
+ }
83
+ /** Yield text-file relative paths under `root`, respecting isSyncIgnored.
84
+ * Inline because we want a simpler walker than sync.ts's (no baseline, no
85
+ * hashing) — just rel-paths we'll read+rewrite. */
86
+ function* walkTextFiles(root) {
87
+ const stack = [root];
88
+ while (stack.length) {
89
+ const dir = stack.pop();
90
+ let entries;
91
+ try {
92
+ entries = readdirSync(dir, { withFileTypes: true });
93
+ }
94
+ catch {
95
+ continue;
96
+ }
97
+ for (const entry of entries) {
98
+ if (isSyncIgnored(entry.name))
99
+ continue;
100
+ const full = join(dir, entry.name);
101
+ if (entry.isDirectory()) {
102
+ stack.push(full);
103
+ }
104
+ else if (entry.isFile()) {
105
+ try {
106
+ if (!statSync(full).isFile())
107
+ continue;
108
+ }
109
+ catch {
110
+ continue;
111
+ }
112
+ yield relative(root, full).replace(/\\/g, '/');
113
+ }
114
+ }
115
+ }
116
+ }
117
+ /** Walk `dir` (respecting the project's sync-ignore rules), substitute every
118
+ * known placeholder in text files, and write the result back. Files without
119
+ * placeholders are not touched. Files with unknown placeholders are logged. */
120
+ export async function substituteDir(dir, vars) {
121
+ const lookup = buildTemplateVars(vars);
122
+ const knownKeys = new Set(Object.keys(lookup));
123
+ const changed = [];
124
+ const unresolved = [];
125
+ for (const rel of walkTextFiles(dir)) {
126
+ const ext = extname(rel).toLowerCase();
127
+ if (!SUBSTITUTABLE_EXTS.has(ext))
128
+ continue;
129
+ const abs = join(dir, rel);
130
+ let content;
131
+ try {
132
+ content = await fs.readFile(abs, 'utf-8');
133
+ }
134
+ catch {
135
+ continue;
136
+ }
137
+ // Quick check before doing replacement work — most files don't have any.
138
+ if (!content.includes('{{'))
139
+ continue;
140
+ const next = substituteString(content, lookup);
141
+ if (next !== content) {
142
+ await fs.writeFile(abs, next, 'utf-8');
143
+ changed.push(rel);
144
+ }
145
+ // Flag any remaining `{{X}}` patterns whose key we don't know about —
146
+ // this is the test signal that the placeholder set is out of date.
147
+ const leftover = next.match(/\{\{[A-Z_]+\}\}/g);
148
+ if (leftover) {
149
+ const unknown = Array.from(new Set(leftover)).filter(k => !knownKeys.has(k));
150
+ if (unknown.length)
151
+ unresolved.push({ path: rel, tokens: unknown });
152
+ }
153
+ }
154
+ return { changed, unresolved };
155
+ }
156
+ //# sourceMappingURL=template-vars.js.map
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "gipity",
3
- "version": "1.0.347",
3
+ "version": "1.0.356",
4
4
  "description": "The full-stack platform tuned for AI agents. Database, storage, auth, functions, deploy, and drop-in kits - all agent-tuned. Pair with Claude Code or use standalone.",
5
5
  "bin": {
6
- "gipity": "./dist/updater/shim.js",
7
- "gipcc": "./dist/gipcc.js",
8
- "gipccd": "./dist/gipccd.js"
6
+ "gipity": "dist/updater/shim.js",
7
+ "gipcc": "dist/gipcc.js",
8
+ "gipccd": "dist/gipccd.js"
9
9
  },
10
10
  "type": "module",
11
11
  "scripts": {
12
12
  "build": "tsc && chmod +x dist/index.js dist/gipcc.js dist/gipccd.js dist/updater/shim.js dist/updater/check.js",
13
13
  "dev": "tsc --watch",
14
14
  "test": "npm run test:smoke",
15
- "test:smoke": "tsc && node --test dist/__tests__/utils.test.js dist/__tests__/config.test.js dist/__tests__/sync.test.js dist/__tests__/sync-apply.test.js dist/__tests__/sync-lock.test.js dist/__tests__/push-cas.test.js dist/__tests__/upload.test.js dist/__tests__/updater.test.js dist/__tests__/cli-smoke.test.js dist/__tests__/claude-noninteractive.test.js dist/__tests__/claude-trust.test.js dist/__tests__/relay-state.test.js dist/__tests__/relay-daemon.test.js dist/__tests__/relay-installers.test.js dist/__tests__/relay-bridge-abort.test.js dist/__tests__/relay-redact.test.js dist/__tests__/relay-machine-id.test.js dist/__tests__/stream-json.test.js dist/__tests__/relay-ingest-contract.test.js dist/__tests__/prompts.test.js dist/__tests__/capture-transcript.test.js dist/__tests__/flag-aliases.test.js dist/__tests__/adopt-cwd.test.js dist/__tests__/cli-cmd-agent.test.js dist/__tests__/cli-cmd-approval.test.js dist/__tests__/cli-cmd-audit.test.js dist/__tests__/cli-cmd-chat.test.js dist/__tests__/cli-cmd-credits.test.js dist/__tests__/cli-cmd-db.test.js dist/__tests__/cli-cmd-deploy.test.js dist/__tests__/cli-cmd-domain.test.js dist/__tests__/cli-cmd-email.test.js dist/__tests__/cli-cmd-file.test.js dist/__tests__/cli-cmd-fn.test.js dist/__tests__/cli-cmd-job.test.js dist/__tests__/cli-cmd-generate.test.js dist/__tests__/cli-cmd-gmail.test.js dist/__tests__/cli-cmd-info.test.js dist/__tests__/cli-cmd-init.test.js dist/__tests__/cli-cmd-location.test.js dist/__tests__/cli-cmd-login.test.js dist/__tests__/cli-cmd-logout.test.js dist/__tests__/cli-cmd-logs.test.js dist/__tests__/cli-cmd-memory.test.js dist/__tests__/cli-cmd-page-inspect.test.js dist/__tests__/cli-cmd-plan.test.js dist/__tests__/cli-cmd-project.test.js dist/__tests__/cli-cmd-rbac.test.js dist/__tests__/cli-cmd-realtime.test.js dist/__tests__/cli-cmd-records.test.js dist/__tests__/cli-cmd-relay.test.js dist/__tests__/cli-cmd-sandbox.test.js dist/__tests__/cli-cmd-add.test.js dist/__tests__/cli-cmd-skill.test.js dist/__tests__/cli-cmd-test.test.js dist/__tests__/cli-cmd-workflow.test.js dist/__tests__/setup-skills-block.test.js",
15
+ "test:smoke": "tsc && node --test dist/__tests__/utils.test.js dist/__tests__/config.test.js dist/__tests__/sync.test.js dist/__tests__/sync-apply.test.js dist/__tests__/sync-lock.test.js dist/__tests__/push-cas.test.js dist/__tests__/upload.test.js dist/__tests__/updater.test.js dist/__tests__/cli-smoke.test.js dist/__tests__/claude-noninteractive.test.js dist/__tests__/claude-trust.test.js dist/__tests__/relay-state.test.js dist/__tests__/relay-daemon.test.js dist/__tests__/relay-installers.test.js dist/__tests__/relay-bridge-abort.test.js dist/__tests__/relay-redact.test.js dist/__tests__/relay-machine-id.test.js dist/__tests__/stream-json.test.js dist/__tests__/relay-ingest-contract.test.js dist/__tests__/prompts.test.js dist/__tests__/capture-transcript.test.js dist/__tests__/flag-aliases.test.js dist/__tests__/adopt-cwd.test.js dist/__tests__/cli-cmd-agent.test.js dist/__tests__/cli-cmd-approval.test.js dist/__tests__/cli-cmd-audit.test.js dist/__tests__/cli-cmd-chat.test.js dist/__tests__/cli-cmd-credits.test.js dist/__tests__/cli-cmd-db.test.js dist/__tests__/cli-cmd-deploy.test.js dist/__tests__/cli-cmd-domain.test.js dist/__tests__/cli-cmd-email.test.js dist/__tests__/cli-cmd-file.test.js dist/__tests__/cli-cmd-fn.test.js dist/__tests__/cli-cmd-job.test.js dist/__tests__/cli-cmd-generate.test.js dist/__tests__/cli-cmd-gmail.test.js dist/__tests__/cli-cmd-info.test.js dist/__tests__/cli-cmd-init.test.js dist/__tests__/cli-cmd-location.test.js dist/__tests__/cli-cmd-login.test.js dist/__tests__/cli-cmd-logout.test.js dist/__tests__/cli-cmd-logs.test.js dist/__tests__/cli-cmd-memory.test.js dist/__tests__/cli-cmd-page.test.js dist/__tests__/cli-cmd-plan.test.js dist/__tests__/cli-cmd-project.test.js dist/__tests__/cli-cmd-rbac.test.js dist/__tests__/cli-cmd-realtime.test.js dist/__tests__/cli-cmd-records.test.js dist/__tests__/cli-cmd-relay.test.js dist/__tests__/cli-cmd-sandbox.test.js dist/__tests__/cli-cmd-add.test.js dist/__tests__/cli-cmd-skill.test.js dist/__tests__/cli-cmd-test.test.js dist/__tests__/cli-cmd-workflow.test.js dist/__tests__/setup-skills-block.test.js",
16
16
  "test:e2e": "tsc && GIPITY_E2E=1 node --test --test-timeout=180000 dist/__tests__/cli-e2e-live.test.js"
17
17
  },
18
18
  "dependencies": {
@@ -28,7 +28,8 @@
28
28
  "node": ">=18"
29
29
  },
30
30
  "files": [
31
- "dist",
31
+ "dist/**/*.js",
32
+ "!dist/__tests__/**",
32
33
  "hooks"
33
34
  ],
34
35
  "license": "MIT"
@@ -1 +0,0 @@
1
- export {};
@@ -1,176 +0,0 @@
1
- /**
2
- * Unit tests for the cwd-adoption helpers. Pure logic + small fs walks
3
- * inside tmp dirs - no network, no real platform state.
4
- */
5
- import { describe, it, before, after } from 'node:test';
6
- import assert from 'node:assert/strict';
7
- import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'fs';
8
- import { tmpdir, homedir } from 'os';
9
- import { join, sep } from 'path';
10
- import { scanForAdoption, isLikelyEmpty, canAdoptCwd, formatCwdLabel, formatBytes, } from '../adopt-cwd.js';
11
- let root;
12
- before(() => {
13
- root = mkdtempSync(join(tmpdir(), 'gipity-adopt-test-'));
14
- });
15
- after(() => {
16
- try {
17
- rmSync(root, { recursive: true, force: true });
18
- }
19
- catch { /* best effort */ }
20
- });
21
- function mkdir(p) {
22
- const full = join(root, p);
23
- mkdirSync(full, { recursive: true });
24
- return full;
25
- }
26
- function writeBytes(dir, name, n) {
27
- writeFileSync(join(dir, name), Buffer.alloc(n));
28
- }
29
- describe('scanForAdoption', () => {
30
- it('returns easy tier for a tiny project', () => {
31
- const d = mkdir('easy');
32
- writeBytes(d, 'a.txt', 10);
33
- writeBytes(d, 'b.txt', 10);
34
- const s = scanForAdoption(d);
35
- assert.equal(s.tier, 'easy');
36
- assert.equal(s.files, 2);
37
- assert.equal(s.bytes, 20);
38
- assert.equal(s.truncated, false);
39
- });
40
- it('handles a missing directory gracefully', () => {
41
- const s = scanForAdoption(join(root, 'no-such-dir'));
42
- assert.equal(s.tier, 'easy');
43
- assert.equal(s.files, 0);
44
- });
45
- it('walks nested directories', () => {
46
- const d = mkdir('nested');
47
- const sub = mkdir('nested/sub/sub2');
48
- writeBytes(d, 'top.txt', 1);
49
- writeBytes(sub, 'deep.txt', 2);
50
- const s = scanForAdoption(d);
51
- assert.equal(s.files, 2);
52
- assert.equal(s.bytes, 3);
53
- });
54
- it('returns moderate tier when over the easy file-count threshold', () => {
55
- const d = mkdir('moderate-files');
56
- for (let i = 0; i < 250; i++)
57
- writeBytes(d, `f${i}.txt`, 1);
58
- const s = scanForAdoption(d);
59
- assert.equal(s.tier, 'moderate');
60
- assert.equal(s.truncated, false);
61
- });
62
- it('returns refuse + truncated when over the refuse file-count threshold', () => {
63
- const d = mkdir('refuse-files');
64
- for (let i = 0; i < 2100; i++)
65
- writeBytes(d, `f${i}.txt`, 1);
66
- const s = scanForAdoption(d);
67
- assert.equal(s.tier, 'refuse');
68
- assert.equal(s.truncated, true);
69
- });
70
- it('skips sync-ignored entries (node_modules, .git)', () => {
71
- const d = mkdir('with-junk');
72
- writeBytes(d, 'real.txt', 1);
73
- const nm = mkdir('with-junk/node_modules');
74
- writeBytes(nm, 'should-not-count.txt', 999_999);
75
- const git = mkdir('with-junk/.git');
76
- writeBytes(git, 'also-skip.txt', 999_999);
77
- const s = scanForAdoption(d);
78
- assert.equal(s.files, 1);
79
- assert.equal(s.bytes, 1);
80
- });
81
- });
82
- describe('isLikelyEmpty', () => {
83
- it('true for a truly empty dir', () => {
84
- const d = mkdir('empty');
85
- assert.equal(isLikelyEmpty(d), true);
86
- });
87
- it('true for a dir with only sync-ignored entries', () => {
88
- const d = mkdir('only-junk');
89
- mkdir('only-junk/node_modules');
90
- mkdir('only-junk/.git');
91
- assert.equal(isLikelyEmpty(d), true);
92
- });
93
- it('false when there is any real file', () => {
94
- const d = mkdir('not-empty');
95
- writeBytes(d, 'hello.md', 1);
96
- assert.equal(isLikelyEmpty(d), false);
97
- });
98
- it('true when the dir does not exist', () => {
99
- assert.equal(isLikelyEmpty(join(root, 'ghost')), true);
100
- });
101
- });
102
- describe('canAdoptCwd', () => {
103
- it('refuses the filesystem root', () => {
104
- assert.equal(canAdoptCwd(sep), false);
105
- });
106
- it('refuses the user\'s home directory', () => {
107
- assert.equal(canAdoptCwd(homedir()), false);
108
- });
109
- it('refuses system dirs', () => {
110
- assert.equal(canAdoptCwd('/tmp'), false);
111
- assert.equal(canAdoptCwd('/etc'), false);
112
- assert.equal(canAdoptCwd('/usr'), false);
113
- });
114
- it('allows a subdirectory of /tmp', () => {
115
- const d = mkdir('allowed-subdir');
116
- assert.equal(canAdoptCwd(d), true);
117
- });
118
- it('refuses a workspace-parent (depth ≤1 below home with 3+ git children)', () => {
119
- // Simulate ~/Workspace/{a,b,c}/.git
120
- const ws = mkdtempSync(join(homedir(), 'gipity-adopt-ws-'));
121
- try {
122
- for (const sub of ['a', 'b', 'c']) {
123
- mkdirSync(join(ws, sub, '.git'), { recursive: true });
124
- }
125
- assert.equal(canAdoptCwd(ws), false);
126
- }
127
- finally {
128
- rmSync(ws, { recursive: true, force: true });
129
- }
130
- });
131
- it('allows a single-project dir even at depth ≤1 under home', () => {
132
- const single = mkdtempSync(join(homedir(), 'gipity-adopt-single-'));
133
- try {
134
- mkdirSync(join(single, '.git'), { recursive: true });
135
- assert.equal(canAdoptCwd(single), true);
136
- }
137
- finally {
138
- rmSync(single, { recursive: true, force: true });
139
- }
140
- });
141
- });
142
- describe('formatCwdLabel', () => {
143
- it('returns "~" for the home dir', () => {
144
- assert.equal(formatCwdLabel(homedir()), '~');
145
- });
146
- it('uses ~/tail when 1-2 segments deep in home', () => {
147
- assert.equal(formatCwdLabel(join(homedir(), 'Github')), '~/Github');
148
- assert.equal(formatCwdLabel(join(homedir(), 'Github', 'Gipity')), '~/Github/Gipity');
149
- });
150
- it('uses ~/…/last-2 when deeper in home', () => {
151
- const deep = join(homedir(), 'a', 'b', 'c', 'd');
152
- assert.equal(formatCwdLabel(deep), '~/…/c/d');
153
- });
154
- it('shows parent/this for non-home paths', () => {
155
- assert.equal(formatCwdLabel('/tmp/scratch'), 'tmp/scratch');
156
- });
157
- });
158
- describe('formatBytes', () => {
159
- it('B for sub-KB', () => {
160
- assert.equal(formatBytes(0), '0 B');
161
- assert.equal(formatBytes(512), '512 B');
162
- });
163
- it('KB for sub-MB', () => {
164
- assert.equal(formatBytes(1024), '1.0 KB');
165
- assert.equal(formatBytes(2048), '2.0 KB');
166
- });
167
- it('MB for sub-GB', () => {
168
- assert.equal(formatBytes(1024 * 1024), '1.0 MB');
169
- assert.equal(formatBytes(50 * 1024 * 1024), '50.0 MB');
170
- });
171
- it('GB for ≥ GB (fixes the "1024.0 MB" overflow at the refuse threshold)', () => {
172
- assert.equal(formatBytes(1024 * 1024 * 1024), '1.00 GB');
173
- assert.equal(formatBytes(2.5 * 1024 * 1024 * 1024), '2.50 GB');
174
- });
175
- });
176
- //# sourceMappingURL=adopt-cwd.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adopt-cwd.test.js","sourceRoot":"","sources":["../../src/__tests__/adopt-cwd.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};