@ekanos/cli 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +62 -4
  2. package/dist/commands/add.d.ts +2 -0
  3. package/dist/commands/add.js +118 -0
  4. package/dist/commands/add.js.map +1 -0
  5. package/dist/commands/audiences.d.ts +31 -0
  6. package/dist/commands/audiences.js +239 -0
  7. package/dist/commands/audiences.js.map +1 -0
  8. package/dist/commands/build.d.ts +2 -0
  9. package/dist/commands/build.js +41 -0
  10. package/dist/commands/build.js.map +1 -0
  11. package/dist/commands/check.d.ts +2 -0
  12. package/dist/commands/check.js +43 -0
  13. package/dist/commands/check.js.map +1 -0
  14. package/dist/commands/codegen.d.ts +2 -0
  15. package/dist/commands/codegen.js +49 -0
  16. package/dist/commands/codegen.js.map +1 -0
  17. package/dist/commands/contract.d.ts +52 -0
  18. package/dist/commands/contract.js +300 -0
  19. package/dist/commands/contract.js.map +1 -0
  20. package/dist/commands/dev.d.ts +7 -0
  21. package/dist/commands/dev.js +186 -12
  22. package/dist/commands/dev.js.map +1 -1
  23. package/dist/commands/index-experience.d.ts +31 -0
  24. package/dist/commands/index-experience.js +21 -0
  25. package/dist/commands/index-experience.js.map +1 -0
  26. package/dist/commands/init.d.ts +7 -0
  27. package/dist/commands/init.js +12 -0
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/new.d.ts +2 -0
  30. package/dist/commands/new.js +39 -0
  31. package/dist/commands/new.js.map +1 -0
  32. package/dist/commands/publish.d.ts +59 -0
  33. package/dist/commands/publish.js +118 -65
  34. package/dist/commands/publish.js.map +1 -1
  35. package/dist/commands/scope-notice.d.ts +6 -0
  36. package/dist/commands/scope-notice.js +15 -0
  37. package/dist/commands/scope-notice.js.map +1 -1
  38. package/dist/commands/sources.js +2 -0
  39. package/dist/commands/sources.js.map +1 -1
  40. package/dist/commands/sync.d.ts +2 -0
  41. package/dist/commands/sync.js +150 -0
  42. package/dist/commands/sync.js.map +1 -0
  43. package/dist/commands/teams-audience.d.ts +12 -0
  44. package/dist/commands/teams-audience.js +144 -0
  45. package/dist/commands/teams-audience.js.map +1 -0
  46. package/dist/commands/teams-scope.js +4 -0
  47. package/dist/commands/teams-scope.js.map +1 -1
  48. package/dist/commands/teams.d.ts +1 -1
  49. package/dist/commands/teams.js +6 -1
  50. package/dist/commands/teams.js.map +1 -1
  51. package/dist/compatibility.d.ts +10 -1
  52. package/dist/compatibility.js +10 -1
  53. package/dist/compatibility.js.map +1 -1
  54. package/dist/dev-experience.d.ts +125 -0
  55. package/dist/dev-experience.js +128 -0
  56. package/dist/dev-experience.js.map +1 -0
  57. package/dist/experience/boundary.d.ts +12 -0
  58. package/dist/experience/boundary.js +260 -0
  59. package/dist/experience/boundary.js.map +1 -0
  60. package/dist/experience/build.d.ts +16 -0
  61. package/dist/experience/build.js +90 -0
  62. package/dist/experience/build.js.map +1 -0
  63. package/dist/experience/checks.d.ts +29 -0
  64. package/dist/experience/checks.js +133 -0
  65. package/dist/experience/checks.js.map +1 -0
  66. package/dist/experience/contract-sources.d.ts +36 -0
  67. package/dist/experience/contract-sources.js +111 -0
  68. package/dist/experience/contract-sources.js.map +1 -0
  69. package/dist/experience/definition-checks.d.ts +26 -0
  70. package/dist/experience/definition-checks.js +201 -0
  71. package/dist/experience/definition-checks.js.map +1 -0
  72. package/dist/experience/definition-shape.d.ts +60 -0
  73. package/dist/experience/definition-shape.js +2 -0
  74. package/dist/experience/definition-shape.js.map +1 -0
  75. package/dist/experience/init.d.ts +10 -0
  76. package/dist/experience/init.js +64 -0
  77. package/dist/experience/init.js.map +1 -0
  78. package/dist/experience/integrations-codegen.d.ts +17 -0
  79. package/dist/experience/integrations-codegen.js +51 -0
  80. package/dist/experience/integrations-codegen.js.map +1 -0
  81. package/dist/experience/json-schema-to-ts.d.ts +1 -0
  82. package/dist/experience/json-schema-to-ts.js +90 -0
  83. package/dist/experience/json-schema-to-ts.js.map +1 -0
  84. package/dist/experience/load-experience.d.ts +23 -0
  85. package/dist/experience/load-experience.js +115 -0
  86. package/dist/experience/load-experience.js.map +1 -0
  87. package/dist/experience/overrides.d.ts +8 -0
  88. package/dist/experience/overrides.js +21 -0
  89. package/dist/experience/overrides.js.map +1 -0
  90. package/dist/experience/pin-integration.d.ts +8 -0
  91. package/dist/experience/pin-integration.js +17 -0
  92. package/dist/experience/pin-integration.js.map +1 -0
  93. package/dist/experience/pin-ops.d.ts +12 -0
  94. package/dist/experience/pin-ops.js +36 -0
  95. package/dist/experience/pin-ops.js.map +1 -0
  96. package/dist/experience/pins.d.ts +35 -0
  97. package/dist/experience/pins.js +91 -0
  98. package/dist/experience/pins.js.map +1 -0
  99. package/dist/experience/project.d.ts +52 -0
  100. package/dist/experience/project.js +149 -0
  101. package/dist/experience/project.js.map +1 -0
  102. package/dist/experience/publish.d.ts +51 -0
  103. package/dist/experience/publish.js +144 -0
  104. package/dist/experience/publish.js.map +1 -0
  105. package/dist/experience/regenerate.d.ts +10 -0
  106. package/dist/experience/regenerate.js +33 -0
  107. package/dist/experience/regenerate.js.map +1 -0
  108. package/dist/experience/report.d.ts +9 -0
  109. package/dist/experience/report.js +23 -0
  110. package/dist/experience/report.js.map +1 -0
  111. package/dist/harness-scaffold.d.ts +52 -18
  112. package/dist/harness-scaffold.js +189 -9
  113. package/dist/harness-scaffold.js.map +1 -1
  114. package/dist/index.js +139 -7
  115. package/dist/index.js.map +1 -1
  116. package/dist/pack.js +5 -0
  117. package/dist/pack.js.map +1 -1
  118. package/dist/project-checks.d.ts +19 -0
  119. package/dist/project-checks.js +93 -0
  120. package/dist/project-checks.js.map +1 -1
  121. package/dist/project.d.ts +14 -0
  122. package/dist/project.js +10 -0
  123. package/dist/project.js.map +1 -1
  124. package/dist/repo/publish.d.ts +42 -0
  125. package/dist/repo/publish.js +225 -0
  126. package/dist/repo/publish.js.map +1 -0
  127. package/dist/repo/scaffold.d.ts +30 -0
  128. package/dist/repo/scaffold.js +165 -0
  129. package/dist/repo/scaffold.js.map +1 -0
  130. package/dist/teams-api.d.ts +37 -1
  131. package/dist/teams-api.js +62 -1
  132. package/dist/teams-api.js.map +1 -1
  133. package/dist/validate-findings.js +3 -1
  134. package/dist/validate-findings.js.map +1 -1
  135. package/package.json +2 -2
  136. package/templates/ekanos.json.tmpl +1 -0
  137. package/templates/experience/AGENTS.md.tmpl +22 -0
  138. package/templates/experience/ekanos.json.tmpl +7 -0
  139. package/templates/experience/ekanos.lock.json.tmpl +4 -0
  140. package/templates/experience/eslint.config.mjs.tmpl +25 -0
  141. package/templates/experience/gitignore.tmpl +17 -0
  142. package/templates/experience/package.json.tmpl +41 -0
  143. package/templates/experience/src/.ekanos/integrations.d.ts.tmpl +3 -0
  144. package/templates/experience/src/experience.ts.tmpl +30 -0
  145. package/templates/experience/src/widgets/hello-widget.tsx.tmpl +40 -0
  146. package/templates/experience/tsconfig.json.tmpl +20 -0
  147. package/templates/harness/app/%5F%5Fekanos/api/[...path]/route.ts.tmpl +9 -0
  148. package/templates/harness/app/[slug]/activation/page.tsx.tmpl +1 -1
  149. package/templates/harness/app/[slug]/page.tsx.tmpl +1 -1
  150. package/templates/harness/app/[slug]/tile/page.tsx.tmpl +1 -1
  151. package/templates/harness/app/[slug]/triggers/page.tsx.tmpl +1 -1
  152. package/templates/harness/app/[slug]/widgets/[widgetId]/page.tsx.tmpl +1 -1
  153. package/templates/harness/app/[slug]/widgets/page.tsx.tmpl +1 -1
  154. package/templates/harness/app/experience/layout.tsx.tmpl +17 -0
  155. package/templates/harness/app/experience/page.tsx.tmpl +1 -0
  156. package/templates/harness/app/experience/pages/[id]/page.tsx.tmpl +1 -0
  157. package/templates/harness/app/experience/review-queue/page.tsx.tmpl +1 -0
  158. package/templates/harness/app/experience/runs/page.tsx.tmpl +1 -0
  159. package/templates/harness/app/experience/widgets/[id]/page.tsx.tmpl +1 -0
  160. package/templates/harness/app/experience/widgets/page.tsx.tmpl +1 -0
  161. package/templates/harness/app/experience/workflows/[id]/page.tsx.tmpl +1 -0
  162. package/templates/harness/app/experience/workflows/page.tsx.tmpl +1 -0
  163. package/templates/harness/app/integrations/[slug]/connect/page.tsx.tmpl +1 -0
  164. package/templates/harness/app/integrations/[slug]/events/page.tsx.tmpl +1 -0
  165. package/templates/harness/app/integrations/[slug]/health/page.tsx.tmpl +1 -0
  166. package/templates/harness/app/integrations/[slug]/operations/[kind]/[name]/page.tsx.tmpl +1 -0
  167. package/templates/harness/app/integrations/[slug]/operations/page.tsx.tmpl +1 -0
  168. package/templates/harness/app/integrations/[slug]/page.tsx.tmpl +1 -0
  169. package/templates/harness/app/integrations/[slug]/preview/activation/page.tsx.tmpl +1 -0
  170. package/templates/harness/app/integrations/[slug]/preview/layout.tsx.tmpl +1 -0
  171. package/templates/harness/app/integrations/[slug]/preview/page.tsx.tmpl +1 -0
  172. package/templates/harness/app/integrations/[slug]/preview/tile/page.tsx.tmpl +1 -0
  173. package/templates/harness/app/integrations/[slug]/preview/triggers/page.tsx.tmpl +1 -0
  174. package/templates/harness/app/integrations/[slug]/preview/widgets/[widgetId]/page.tsx.tmpl +1 -0
  175. package/templates/harness/app/integrations/[slug]/preview/widgets/page.tsx.tmpl +1 -0
  176. package/templates/harness/app/integrations/[slug]/runs/page.tsx.tmpl +1 -0
  177. package/templates/harness/app/integrations/layout.tsx.tmpl +1 -0
  178. package/templates/harness/app/integrations/page.tsx.tmpl +1 -0
  179. package/templates/harness/app/page.experience.tsx.tmpl +5 -0
  180. package/templates/harness/repo/app/%5F%5Fekanos/api/[...path]/route.ts.tmpl +11 -0
  181. package/templates/harness/repo/app/(repo)/connections/page.tsx.tmpl +1 -0
  182. package/templates/harness/repo/app/(repo)/layout.tsx.tmpl +1 -0
  183. package/templates/harness/repo/app/(repo)/page.tsx.tmpl +1 -0
  184. package/templates/harness/repo/app/experiences/[name]/connect/page.tsx.tmpl +1 -0
  185. package/templates/harness/repo/app/experiences/[name]/layout.tsx.tmpl +9 -0
  186. package/templates/harness/repo/app/experiences/page.tsx.tmpl +5 -0
  187. package/templates/harness/repo/app/harness-shell.tsx.tmpl +9 -0
  188. package/templates/harness/repo/app/integrations/[slug]/layout.tsx.tmpl +1 -0
  189. package/templates/harness/repo/app/integrations/page.tsx.tmpl +5 -0
  190. package/templates/harness/repo/app/repo-experiences.ts.tmpl +5 -0
  191. package/templates/harness/styles/globals.css.tmpl +15 -1
  192. package/templates/package.json.tmpl +5 -4
@@ -0,0 +1 @@
1
+ export { ExperienceWorkflowPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { ExperienceWorkflowsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationConnectPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationEventsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationHealthPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationOperationPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationOperationsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationOverviewPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { ActivationPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { PreviewLayout as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { PreviewIndexPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { TilePage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { TriggersPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { SingleWidgetPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { WidgetsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationRunsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { ConsoleLayout as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { IntegrationsListPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1,5 @@
1
+ import { redirect } from 'next/navigation';
2
+
3
+ export default function HarnessIndex() {
4
+ redirect('/experience');
5
+ }
@@ -0,0 +1,11 @@
1
+ import { createRepoApiHandlers } from '@ekanos/harness/api';
2
+
3
+ // Next treats a leading underscore folder as private, so this directory is
4
+ // literally named `%5F%5Fekanos` and serves /__ekanos/api/*. At a repo root it
5
+ // answers the repo overview and forwards `packages/<kind>/<name>/…` to that
6
+ // package's own harness API.
7
+ const handlers = createRepoApiHandlers();
8
+
9
+ export const GET = handlers.GET;
10
+ export const POST = handlers.POST;
11
+ export const PUT = handlers.PUT;
@@ -0,0 +1 @@
1
+ export { RepoConnectionsPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { RepoLayout as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { RepoHomePage as default } from '@ekanos/harness/routes';
@@ -0,0 +1 @@
1
+ export { ExperienceConnectPage as default } from '@ekanos/harness/routes';
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+
3
+ import { RepoExperienceLayout } from '@ekanos/harness/routes';
4
+
5
+ import { experienceEntries } from '../../repo-experiences';
6
+
7
+ export default function ExperienceLayout(props: { children: React.ReactNode }) {
8
+ return <RepoExperienceLayout entries={experienceEntries} {...props} />;
9
+ }
@@ -0,0 +1,5 @@
1
+ import { redirect } from 'next/navigation';
2
+
3
+ export default function ExperiencesIndex() {
4
+ redirect('/');
5
+ }
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+
3
+ import { RootLayout } from '@ekanos/harness/app';
4
+
5
+ import { harnessIntegrations } from '../../../harness.config';
6
+
7
+ export default function HarnessShell(props: { children: React.ReactNode }) {
8
+ return <RootLayout integrations={harnessIntegrations} repo {...props} />;
9
+ }
@@ -0,0 +1 @@
1
+ export { RepoIntegrationLayout as default } from '@ekanos/harness/routes';
@@ -0,0 +1,5 @@
1
+ import { redirect } from 'next/navigation';
2
+
3
+ export default function IntegrationsIndex() {
4
+ redirect('/');
5
+ }
@@ -0,0 +1,5 @@
1
+ // Generated by `ekanos dev` at a repo root. One entry per experience package:
2
+ // the widgets and pages are React components only the package's own module holds.
3
+ __EXPERIENCE_IMPORTS__
4
+ export const experienceEntries = {
5
+ __EXPERIENCE_ENTRIES__} as const;
@@ -6,7 +6,21 @@
6
6
  * `@ekanos/ui`, `@ekanos/sdk` — is already accounted for inside
7
7
  * `@ekanos/harness/styles.css`, so nothing about the harness needs a glob here.
8
8
  */
9
- @import '@ekanos/harness/styles.css';
9
+ /*
10
+ * `source(none)` turns OFF Tailwind v4's automatic source detection. Left on,
11
+ * it scans everything under this directory — including `.next/`, whose
12
+ * Turbopack cache holds binary `.sst` blocks that contain fragments of our
13
+ * own sources split by control bytes. Those become garbage candidates such as
14
+ * `var(--icon-glyph<ctrl>,16px)`, and the CSS parser then fails with "Parsing
15
+ * CSS source code failed": every page a build-error overlay and every
16
+ * harness API route an HTML 500, recurring whenever the cache is rewritten.
17
+ * Every directory worth scanning is named by an exact `@source` below or
18
+ * inside the harness stylesheet.
19
+ */
20
+ @import '@ekanos/harness/styles.css' source(none);
21
+
22
+ /* The generated shell's own pages — explicit, so `.next/` is never matched. */
23
+ @source '../app/**/*.tsx';
10
24
 
11
25
  /*
12
26
  * Your integration source, and the registry that lists it. A missing @source
@@ -12,16 +12,17 @@
12
12
  "prepare": "node scripts/setup-hooks.mjs"
13
13
  },
14
14
  "dependencies": {
15
- "@ekanos/sdk": "^0.18.0",
16
- "@ekanos/ui": "^0.18.0"
15
+ "@ekanos/sdk": "^0.19.0",
16
+ "@ekanos/ui": "^0.19.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@ekanos/cli": "^0.16.0",
20
- "@ekanos/harness": "^0.18.0",
19
+ "@ekanos/cli": "^0.17.0",
20
+ "@ekanos/harness": "^0.19.0",
21
21
  "@hookform/resolvers": "^5.2.2",
22
22
  "@tailwindcss/postcss": "^4.3.3",
23
23
  "@tanstack/react-query": "^5.101.4",
24
24
  "@typescript-eslint/parser": "^8.46.2",
25
+ "@types/node": "^22.10.0",
25
26
  "@types/react": "^19.2.0",
26
27
  "@types/react-dom": "^19.2.0",
27
28
  "eslint": "^10.11.0",