@burdenoff/microfe-adaptercloud 2026.825.3 → 2026.827.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 (48) hide show
  1. package/dist/adaptercloud/components/ActiveSwitch.d.ts +17 -0
  2. package/dist/adaptercloud/components/ActiveSwitch.d.ts.map +1 -0
  3. package/dist/adaptercloud/components/ActiveSwitch.js +28 -0
  4. package/dist/adaptercloud/components/ActiveSwitch.js.map +1 -0
  5. package/dist/adaptercloud/components/index.d.ts +1 -0
  6. package/dist/adaptercloud/components/index.d.ts.map +1 -1
  7. package/dist/adaptercloud/hooks/useAdapterCloudApi.d.ts +28 -2
  8. package/dist/adaptercloud/hooks/useAdapterCloudApi.d.ts.map +1 -1
  9. package/dist/adaptercloud/hooks/useAdapterCloudApi.js +43 -18
  10. package/dist/adaptercloud/hooks/useAdapterCloudApi.js.map +1 -1
  11. package/dist/adaptercloud/pages/OverviewPage.d.ts.map +1 -1
  12. package/dist/adaptercloud/pages/OverviewPage.js +4 -4
  13. package/dist/adaptercloud/pages/OverviewPage.js.map +1 -1
  14. package/dist/adaptercloud/pages/adapters/AdaptersListPage.d.ts.map +1 -1
  15. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js +6 -5
  16. package/dist/adaptercloud/pages/adapters/AdaptersListPage.js.map +1 -1
  17. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.d.ts.map +1 -1
  18. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js +217 -104
  19. package/dist/adaptercloud/pages/connections/ConnectionDetailPage.js.map +1 -1
  20. package/dist/adaptercloud/pages/connections/ConnectionsListPage.d.ts.map +1 -1
  21. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js +6 -5
  22. package/dist/adaptercloud/pages/connections/ConnectionsListPage.js.map +1 -1
  23. package/dist/adaptercloud/pages/costs/CostsPage.d.ts.map +1 -1
  24. package/dist/adaptercloud/pages/costs/CostsPage.js +183 -156
  25. package/dist/adaptercloud/pages/costs/CostsPage.js.map +1 -1
  26. package/dist/adaptercloud/pages/drift/DriftListPage.d.ts.map +1 -1
  27. package/dist/adaptercloud/pages/drift/DriftListPage.js +108 -107
  28. package/dist/adaptercloud/pages/drift/DriftListPage.js.map +1 -1
  29. package/dist/adaptercloud/pages/policies/PoliciesListPage.d.ts.map +1 -1
  30. package/dist/adaptercloud/pages/policies/PoliciesListPage.js +141 -131
  31. package/dist/adaptercloud/pages/policies/PoliciesListPage.js.map +1 -1
  32. package/dist/adaptercloud/pages/policies/PolicyDetailPage.d.ts.map +1 -1
  33. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js +171 -117
  34. package/dist/adaptercloud/pages/policies/PolicyDetailPage.js.map +1 -1
  35. package/dist/adaptercloud/pages/resources/ResourcesListPage.d.ts.map +1 -1
  36. package/dist/adaptercloud/pages/resources/ResourcesListPage.js +85 -66
  37. package/dist/adaptercloud/pages/resources/ResourcesListPage.js.map +1 -1
  38. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.d.ts.map +1 -1
  39. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js +148 -121
  40. package/dist/adaptercloud/pages/sync-runs/SyncRunsListPage.js.map +1 -1
  41. package/dist/adaptercloud/pages/violations/ViolationsListPage.d.ts.map +1 -1
  42. package/dist/adaptercloud/pages/violations/ViolationsListPage.js +145 -144
  43. package/dist/adaptercloud/pages/violations/ViolationsListPage.js.map +1 -1
  44. package/dist/utils/pageContext.d.ts +0 -2
  45. package/dist/utils/pageContext.d.ts.map +1 -1
  46. package/dist/utils/pageContext.js +25 -10
  47. package/dist/utils/pageContext.js.map +1 -1
  48. package/package.json +8 -5
@@ -8,21 +8,36 @@ function e() {
8
8
  entityId: r.entityId,
9
9
  platform: "adaptercloud",
10
10
  version: "2026.707.1",
11
- viewportSize: `${window.innerWidth}x${window.innerHeight}`,
12
- userAgent: navigator.userAgent,
13
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
11
+ viewportSize: `${window.innerWidth}x${window.innerHeight}`
14
12
  };
15
13
  }
16
14
  function t(e, t) {
17
15
  return t.match(e);
18
16
  }
19
17
  function n(e, n) {
20
- let r = new URLSearchParams(n);
18
+ let r = new URLSearchParams(n), i = new Map([
19
+ ["/adaptercloud/adapters", "ADAPTERCLOUD_ADAPTER"],
20
+ ["/adaptercloud/adapters/new", "ADAPTERCLOUD_ADAPTER"],
21
+ ["/adaptercloud/connections", "ADAPTERCLOUD_CONNECTION"],
22
+ ["/adaptercloud/connections/new", "ADAPTERCLOUD_CONNECTION"],
23
+ ["/adaptercloud/resources", "ADAPTERCLOUD_RESOURCE"],
24
+ ["/adaptercloud/topology", "ADAPTERCLOUD_TOPOLOGY"],
25
+ ["/adaptercloud/policies", "ADAPTERCLOUD_POLICY"],
26
+ ["/adaptercloud/policies/new", "ADAPTERCLOUD_POLICY"],
27
+ ["/adaptercloud/violations", "ADAPTERCLOUD_VIOLATION"],
28
+ ["/adaptercloud/drift", "ADAPTERCLOUD_DRIFT"],
29
+ ["/adaptercloud/sync-runs", "ADAPTERCLOUD_SYNC_RUN"],
30
+ ["/adaptercloud/costs", "ADAPTERCLOUD_COST"]
31
+ ]).get(e);
32
+ if (i) return {
33
+ entityType: i,
34
+ metadata: { routePattern: e }
35
+ };
21
36
  for (let [n, r] of [
22
- [/^\/adaptercloud\/adapters\/([^/]+)$/, "ADAPTERCLOUD_ADAPTER"],
23
- [/^\/adaptercloud\/connections\/([^/]+)$/, "ADAPTERCLOUD_CONNECTION"],
37
+ [/^\/adaptercloud\/adapters\/([^/]+)(?:\/edit)?$/, "ADAPTERCLOUD_ADAPTER"],
38
+ [/^\/adaptercloud\/connections\/([^/]+)(?:\/edit)?$/, "ADAPTERCLOUD_CONNECTION"],
24
39
  [/^\/adaptercloud\/resources\/([^/]+)$/, "ADAPTERCLOUD_RESOURCE"],
25
- [/^\/adaptercloud\/policies\/([^/]+)$/, "ADAPTERCLOUD_POLICY"],
40
+ [/^\/adaptercloud\/policies\/([^/]+)(?:\/edit)?$/, "ADAPTERCLOUD_POLICY"],
26
41
  [/^\/adaptercloud\/sync-runs\/([^/]+)$/, "ADAPTERCLOUD_SYNC_RUN"]
27
42
  ]) {
28
43
  let i = t(n, e);
@@ -32,13 +47,13 @@ function n(e, n) {
32
47
  metadata: { routePattern: n.source }
33
48
  };
34
49
  }
35
- let i = r.get("tab") ?? (() => {
50
+ let a = r.get("tab") ?? (() => {
36
51
  let t = e.split("/").filter(Boolean);
37
52
  return t.length > 2 ? t[t.length - 1] : void 0;
38
53
  })();
39
54
  return {
40
- activeTab: i ?? void 0,
41
- metadata: { ...i ? { activeTab: i } : {} }
55
+ activeTab: a ?? void 0,
56
+ metadata: { ...a ? { activeTab: a } : {} }
42
57
  };
43
58
  }
44
59
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering — captures the user's current browser context\n * to be sent alongside every assistant prompt for better AI awareness.\n */\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface PageContext {\n // `currentUrl` (NOT `activeUrl`) — must match the agent's allowed-context-key\n // contract, otherwise the agent filters it out.\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n userAgent: string;\n timestamp: string;\n}\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveAdapterCloudConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'adaptercloud',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.707.1',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n userAgent: navigator.userAgent,\n timestamp: new Date().toISOString(),\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveAdapterCloudConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/adaptercloud\\/adapters\\/([^/]+)$/, 'ADAPTERCLOUD_ADAPTER'],\n [/^\\/adaptercloud\\/connections\\/([^/]+)$/, 'ADAPTERCLOUD_CONNECTION'],\n [/^\\/adaptercloud\\/resources\\/([^/]+)$/, 'ADAPTERCLOUD_RESOURCE'],\n [/^\\/adaptercloud\\/policies\\/([^/]+)$/, 'ADAPTERCLOUD_POLICY'],\n [/^\\/adaptercloud\\/sync-runs\\/([^/]+)$/, 'ADAPTERCLOUD_SYNC_RUN'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: {\n routePattern: pattern.source,\n },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n },\n };\n}\n"],"mappings":";AA0BA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,GAAG,EAAE,OAAO,OAC5C,EAAa,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,MAClB;CAEA,OAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC7C,WAAW,UAAU;EACrB,4BAAW,IAAI,KAAK,GAAE,YAAY;CACpC;AACF;AAEA,SAAS,EAAU,GAAiB,GAA2C;CAC7E,OAAO,EAAS,MAAM,CAAO;AAC/B;AAEA,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,CAAM;CASzC,KAAK,IAAM,CAAC,GAAS,MAAe;EAPlC,CAAC,uCAAuC,sBAAsB;EAC9D,CAAC,0CAA0C,yBAAyB;EACpE,CAAC,wCAAwC,uBAAuB;EAChE,CAAC,uCAAuC,qBAAqB;EAC7D,CAAC,wCAAwC,uBAAuB;CAG9B,GAAe;EACjD,IAAM,IAAQ,EAAU,GAAS,CAAQ;EACzC,IAAI,GACF,OAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU,EACR,cAAc,EAAQ,OACxB;EACF;CAEJ;CAEA,IAAM,IACJ,EAAO,IAAI,KAAK,YACT;EACL,IAAM,IAAW,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO;EACnD,OAAO,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;CAC/D,GAAG;CAEL,OAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU,EACR,GAAI,IAAY,EAAE,aAAU,IAAI,CAAC,EACnC;CACF;AACF"}
1
+ {"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering — captures the user's current browser context\n * to be sent alongside every assistant prompt for better AI awareness.\n */\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface PageContext {\n // `currentUrl` (NOT `activeUrl`) — must match the agent's allowed-context-key\n // contract, otherwise the agent filters it out.\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n}\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveAdapterCloudConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'adaptercloud',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.707.1',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n };\n}\n\nfunction matchPath(pattern: RegExp, pathname: string): RegExpMatchArray | null {\n return pathname.match(pattern);\n}\n\nexport function resolveAdapterCloudConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n\n // List, tool, and creation routes still identify the product entity family,\n // but intentionally carry no entityId. This lets the assistant understand\n // \"this page\" without fabricating a record identifier from route words such\n // as `new` (BOFF-3697).\n const pageMatches = new Map<string, string>([\n ['/adaptercloud/adapters', 'ADAPTERCLOUD_ADAPTER'],\n ['/adaptercloud/adapters/new', 'ADAPTERCLOUD_ADAPTER'],\n ['/adaptercloud/connections', 'ADAPTERCLOUD_CONNECTION'],\n ['/adaptercloud/connections/new', 'ADAPTERCLOUD_CONNECTION'],\n ['/adaptercloud/resources', 'ADAPTERCLOUD_RESOURCE'],\n ['/adaptercloud/topology', 'ADAPTERCLOUD_TOPOLOGY'],\n ['/adaptercloud/policies', 'ADAPTERCLOUD_POLICY'],\n ['/adaptercloud/policies/new', 'ADAPTERCLOUD_POLICY'],\n ['/adaptercloud/violations', 'ADAPTERCLOUD_VIOLATION'],\n ['/adaptercloud/drift', 'ADAPTERCLOUD_DRIFT'],\n ['/adaptercloud/sync-runs', 'ADAPTERCLOUD_SYNC_RUN'],\n ['/adaptercloud/costs', 'ADAPTERCLOUD_COST'],\n ]);\n const pageEntityType = pageMatches.get(pathname);\n if (pageEntityType) {\n return {\n entityType: pageEntityType,\n metadata: { routePattern: pathname },\n };\n }\n\n const directMatches: Array<[RegExp, string]> = [\n [/^\\/adaptercloud\\/adapters\\/([^/]+)(?:\\/edit)?$/, 'ADAPTERCLOUD_ADAPTER'],\n [/^\\/adaptercloud\\/connections\\/([^/]+)(?:\\/edit)?$/, 'ADAPTERCLOUD_CONNECTION'],\n [/^\\/adaptercloud\\/resources\\/([^/]+)$/, 'ADAPTERCLOUD_RESOURCE'],\n [/^\\/adaptercloud\\/policies\\/([^/]+)(?:\\/edit)?$/, 'ADAPTERCLOUD_POLICY'],\n [/^\\/adaptercloud\\/sync-runs\\/([^/]+)$/, 'ADAPTERCLOUD_SYNC_RUN'],\n ];\n\n for (const [pattern, entityType] of directMatches) {\n const match = matchPath(pattern, pathname);\n if (match) {\n return {\n entityType,\n entityId: match[1],\n metadata: {\n routePattern: pattern.source,\n },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ??\n (() => {\n const segments = pathname.split('/').filter(Boolean);\n return segments.length > 2 ? segments[segments.length - 1] : undefined;\n })();\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n },\n };\n}\n"],"mappings":";AAwBA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,GAAG,EAAE,OAAO,OAC5C,EAAa,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,MAClB;CAEA,OAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;CAC/C;AACF;AAEA,SAAS,EAAU,GAAiB,GAA2C;CAC7E,OAAO,EAAS,MAAM,CAAO;AAC/B;AAEA,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,CAAM,GAoBnC,IAAiB,IAdC,IAAoB;EAC1C,CAAC,0BAA0B,sBAAsB;EACjD,CAAC,8BAA8B,sBAAsB;EACrD,CAAC,6BAA6B,yBAAyB;EACvD,CAAC,iCAAiC,yBAAyB;EAC3D,CAAC,2BAA2B,uBAAuB;EACnD,CAAC,0BAA0B,uBAAuB;EAClD,CAAC,0BAA0B,qBAAqB;EAChD,CAAC,8BAA8B,qBAAqB;EACpD,CAAC,4BAA4B,wBAAwB;EACrD,CAAC,uBAAuB,oBAAoB;EAC5C,CAAC,2BAA2B,uBAAuB;EACnD,CAAC,uBAAuB,mBAAmB;CAC7C,CACuB,EAAY,IAAI,CAAQ;CAC/C,IAAI,GACF,OAAO;EACL,YAAY;EACZ,UAAU,EAAE,cAAc,EAAS;CACrC;CAWF,KAAK,IAAM,CAAC,GAAS,MAAe;EAPlC,CAAC,kDAAkD,sBAAsB;EACzE,CAAC,qDAAqD,yBAAyB;EAC/E,CAAC,wCAAwC,uBAAuB;EAChE,CAAC,kDAAkD,qBAAqB;EACxE,CAAC,wCAAwC,uBAAuB;CAG9B,GAAe;EACjD,IAAM,IAAQ,EAAU,GAAS,CAAQ;EACzC,IAAI,GACF,OAAO;GACL;GACA,UAAU,EAAM;GAChB,UAAU,EACR,cAAc,EAAQ,OACxB;EACF;CAEJ;CAEA,IAAM,IACJ,EAAO,IAAI,KAAK,YACT;EACL,IAAM,IAAW,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO;EACnD,OAAO,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;CAC/D,GAAG;CAEL,OAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU,EACR,GAAI,IAAY,EAAE,aAAU,IAAI,CAAC,EACnC;CACF;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-adaptercloud",
3
- "version": "2026.825.3",
3
+ "version": "2026.827.1",
4
4
  "description": "Burdenoff AdapterCloud Microfrontend",
5
5
  "type": "module",
6
6
  "files": [
@@ -34,9 +34,10 @@
34
34
  "lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
35
35
  "format": "prettier --write \"src/**/*.{ts,tsx}\"",
36
36
  "type:check": "bash scripts/build-limits.sh tsc --noEmit",
37
- "sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run build && bun run build-storybook'",
37
+ "sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run test && bun run build && bun run build-storybook'",
38
38
  "storybook": "storybook dev -p 6006",
39
39
  "build-storybook": "storybook build",
40
+ "test": "bun test",
40
41
  "test:storybook": "test-storybook",
41
42
  "switch:status": "bun scripts/deps-mode.ts status",
42
43
  "switch:remote": "bun scripts/deps-mode.ts remote",
@@ -83,14 +84,15 @@
83
84
  "eslint-plugin-react": "^7.37.5",
84
85
  "eslint-plugin-react-hooks": "^7.0.1",
85
86
  "lefthook": "^2.1.1",
86
- "postcss": "^8.4.49",
87
+ "postcss": "^8.5.26",
87
88
  "prettier": "^3.4.2",
88
89
  "storybook": "^8.6.0",
89
90
  "tailwindcss": "^4.0.0",
90
91
  "typescript": "^5.9.0",
91
92
  "typescript-eslint": "^8.46.0",
92
93
  "vite": "8.0.16",
93
- "vite-plugin-dts": "3.9.1"
94
+ "vite-plugin-dts": "3.9.1",
95
+ "vitest": "^4.1.11"
94
96
  },
95
97
  "peerDependencies": {
96
98
  "@apollo/client": "^4.0.11",
@@ -109,12 +111,13 @@
109
111
  "fast-xml-parser": ">=4.5.5",
110
112
  "@xmldom/xmldom": ">=0.8.12",
111
113
  "swiper": ">=12.1.2",
112
- "brace-expansion": ">=1.1.13",
114
+ "brace-expansion": ">=5.0.8",
113
115
  "follow-redirects": ">=1.15.12",
114
116
  "smol-toml": ">=1.6.1",
115
117
  "axios": ">=1.15.0",
116
118
  "flatted": ">=3.4.1",
117
119
  "yaml": ">=2.8.3",
120
+ "js-yaml": "4.3.1",
118
121
  "picomatch": ">=2.3.2",
119
122
  "immutable": ">=3.8.3",
120
123
  "minimatch": ">=3.1.3"