@atlassian/chippy 0.0.0-stage → 0.0.1-beta.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 (126) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +188 -2
  3. package/bin/chippy.mjs +134 -0
  4. package/bin/pack.mjs +184 -0
  5. package/lib/avalanche.js +2570 -0
  6. package/lib/avalanche.js.map +7 -0
  7. package/lib/bootstrap.d.ts +1 -0
  8. package/lib/bootstrap.js +51 -0
  9. package/lib/bootstrap.js.map +7 -0
  10. package/lib/browser.js +15 -0
  11. package/lib/browser.js.map +7 -0
  12. package/lib/extension/avalanche.es.js +5396 -0
  13. package/lib/extension/avalanche.es.js.map +1 -0
  14. package/lib/extension/chippy-page-bridge.js +1833 -0
  15. package/lib/extension/inspect-react.js +216 -0
  16. package/lib/extension/layout-lab.js +1453 -0
  17. package/lib/extension/panel-dom.js +90 -0
  18. package/lib/extension/resolve-probes.js +342 -0
  19. package/lib/mcp-skill/LICENSE +201 -0
  20. package/lib/mcp-skill/README.md +150 -0
  21. package/lib/mcp-skill/SKILL.md +330 -0
  22. package/lib/mcp-skill/browser-scripts/playwright-probes.js +368 -0
  23. package/lib/mcp-skill/browser-scripts/playwright-session.js +114 -0
  24. package/lib/mcp-skill/extension/avalanche.es.js +5396 -0
  25. package/lib/mcp-skill/extension/avalanche.es.js.map +1 -0
  26. package/lib/mcp-skill/extension/avalanche.iife.js +5397 -0
  27. package/lib/mcp-skill/extension/avalanche.iife.js.map +1 -0
  28. package/lib/mcp-skill/extension/background.js +323 -0
  29. package/lib/mcp-skill/extension/chippy-page-bridge.js +1833 -0
  30. package/lib/mcp-skill/extension/content-script.js +167 -0
  31. package/lib/mcp-skill/extension/devtools-hook-shim.js +68 -0
  32. package/lib/mcp-skill/extension/early-bootstrap.js +47 -0
  33. package/lib/mcp-skill/extension/icon-128.png +0 -0
  34. package/lib/mcp-skill/extension/icon-16.png +0 -0
  35. package/lib/mcp-skill/extension/icon-32.png +0 -0
  36. package/lib/mcp-skill/extension/icon-48.png +0 -0
  37. package/lib/mcp-skill/extension/inspect-react.js +216 -0
  38. package/lib/mcp-skill/extension/layout-lab.js +1453 -0
  39. package/lib/mcp-skill/extension/logo.svg +14 -0
  40. package/lib/mcp-skill/extension/manifest.json +69 -0
  41. package/lib/mcp-skill/extension/panel-dom.js +90 -0
  42. package/lib/mcp-skill/extension/panel-settings.js +191 -0
  43. package/lib/mcp-skill/extension/popup.html +41 -0
  44. package/lib/mcp-skill/extension/popup.js +80 -0
  45. package/lib/mcp-skill/extension/probe-descriptor.js +241 -0
  46. package/lib/mcp-skill/extension/resolve-probes.js +342 -0
  47. package/lib/mcp-skill/package.json +1 -0
  48. package/lib/mcp-skill/references/README.md +56 -0
  49. package/lib/mcp-skill/references/active-stimulus.md +85 -0
  50. package/lib/mcp-skill/references/avalanche-detector.md +731 -0
  51. package/lib/mcp-skill/references/bdd-router.md +310 -0
  52. package/lib/mcp-skill/references/browser-runtime-api.md +193 -0
  53. package/lib/mcp-skill/references/command-output-formats.md +1075 -0
  54. package/lib/mcp-skill/references/command-surface.md +183 -0
  55. package/lib/mcp-skill/references/cynefin.md +99 -0
  56. package/lib/mcp-skill/references/debug-hook.md +161 -0
  57. package/lib/mcp-skill/references/fixing-performance.md +490 -0
  58. package/lib/mcp-skill/references/hook-metrics.md +199 -0
  59. package/lib/mcp-skill/references/hooks-inspection.md +61 -0
  60. package/lib/mcp-skill/references/jira-taxonomy.md +81 -0
  61. package/lib/mcp-skill/references/mcp.md +122 -0
  62. package/lib/mcp-skill/references/mode-a-injection.md +68 -0
  63. package/lib/mcp-skill/references/operating-model.md +128 -0
  64. package/lib/mcp-skill/references/playwright-cli-setup.md +105 -0
  65. package/lib/mcp-skill/references/playwright-probes.md +205 -0
  66. package/lib/mcp-skill/references/procedures.md +545 -0
  67. package/lib/mcp-skill/references/recipes.txt +114 -0
  68. package/lib/mcp-skill/references/stability-render.md +428 -0
  69. package/lib/mcp-skill/references/test-mode-playbook.md +193 -0
  70. package/lib/mcp-skill/references/troubleshooting.md +54 -0
  71. package/lib/mcp-skill/scripts/avalanche-analyze.cjs +495 -0
  72. package/lib/mcp-skill/scripts/build-avalanche-command.js +34 -0
  73. package/lib/mcp-skill/scripts/build-fiber-state-command.js +19 -0
  74. package/lib/mcp-skill/scripts/chippy-helper-server.js +1710 -0
  75. package/lib/mcp-skill/scripts/chippy-mcp.cjs +273 -0
  76. package/lib/mcp-skill/scripts/chippy.sh +1218 -0
  77. package/lib/mcp-skill/scripts/format-probe-result.js +34 -0
  78. package/lib/mcp-skill/scripts/helper-access.js +144 -0
  79. package/lib/mcp-skill/scripts/probe-annotation-channel.js +116 -0
  80. package/lib/mcp-skill/scripts/search-recipes.js +248 -0
  81. package/lib/mcp-skill/snippets/README.md +89 -0
  82. package/lib/mcp-skill/snippets/count-context-consumers.js +40 -0
  83. package/lib/mcp-skill/snippets/find-context-providers.js +38 -0
  84. package/lib/mcp-skill/snippets/find-legacy-context.js +47 -0
  85. package/lib/mcp-skill/snippets/find-prop.js +83 -0
  86. package/lib/mcp-skill/snippets/hook-metrics-sample.js +69 -0
  87. package/lib/mcp-skill/snippets/hook-metrics.js +60 -0
  88. package/lib/mcp-skill/snippets/hook-tracker.js +198 -0
  89. package/lib/mcp-skill/snippets/stability-nudge.js +101 -0
  90. package/lib/package.json +1 -0
  91. package/lib/plugin.js +119 -0
  92. package/lib/plugin.js.map +7 -0
  93. package/lib/storybook/avalanche-panel-model.js +79 -0
  94. package/lib/storybook/brand.jsx +6 -0
  95. package/lib/storybook/connection-fallback.jsx +47 -0
  96. package/lib/storybook/constants.js +15 -0
  97. package/lib/storybook/context-card.jsx +171 -0
  98. package/lib/storybook/manager.jsx +403 -0
  99. package/lib/storybook/preset.js +7 -0
  100. package/lib/storybook/preview.js +263 -0
  101. package/lib/storybook/probe-annotation-editor.jsx +52 -0
  102. package/lib/storybook/probe-intent.js +23 -0
  103. package/lib/storybook/setup.js +93 -0
  104. package/lib/types/avalanche/commit-metrics-adapter.d.ts +76 -0
  105. package/lib/types/avalanche/commit-stats-indices.d.ts +41 -0
  106. package/lib/types/avalanche/commit-surface-ownership.d.ts +9 -0
  107. package/lib/types/avalanche/detector.d.ts +183 -0
  108. package/lib/types/avalanche/interaction-capture.d.ts +25 -0
  109. package/lib/types/avalanche/internals.d.ts +189 -0
  110. package/lib/types/avalanche/report-serializer.d.ts +283 -0
  111. package/lib/types/avalanche/reporter.d.ts +610 -0
  112. package/lib/types/chippy-bridge/fiber-source.d.ts +37 -0
  113. package/lib/types/chippy-bridge/react-renderer.d.ts +49 -0
  114. package/lib/types/chippy-bridge/source-map.d.ts +30 -0
  115. package/lib/types/debug-render/core.d.ts +72 -0
  116. package/lib/types/layout-lab/fiber-boundaries.d.ts +51 -0
  117. package/lib/types/layout-lab/fiber-walk.d.ts +131 -0
  118. package/lib/types/layout-lab/marker-context.d.ts +94 -0
  119. package/lib/types/package/avalanche.d.ts +6 -0
  120. package/lib/types/package/browser.d.ts +10 -0
  121. package/lib/types/package/plugin.d.ts +15 -0
  122. package/lib/types/plugins/atl/commit-metrics-adapter.d.ts +65 -0
  123. package/lib/types/plugins/atl/metrics-slot.d.ts +37 -0
  124. package/lib/types/plugins/index.d.ts +49 -0
  125. package/lib/types/plugins/jira/context-provider.d.ts +36 -0
  126. package/package.json +104 -4
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,51 @@
1
+ // .agents/skills/chippy/extension/devtools-hook-shim.js
2
+ (function chippyDevtoolsHookShim(global) {
3
+ try {
4
+ if (global.__REACT_DEVTOOLS_GLOBAL_HOOK__) return;
5
+ var renderers = /* @__PURE__ */ new Map();
6
+ var hook = {
7
+ __chippyShim: true,
8
+ supportsFiber: true,
9
+ renderers,
10
+ inject: function inject(renderer) {
11
+ var id = (renderers.size || 0) + 1;
12
+ renderers.set(id, renderer);
13
+ return id;
14
+ },
15
+ onScheduleFiberRoot: function() {
16
+ },
17
+ onCommitFiberRoot: function() {
18
+ },
19
+ onCommitFiberUnmount: function() {
20
+ },
21
+ onPostCommitFiberRoot: function() {
22
+ }
23
+ };
24
+ Object.defineProperty(global, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
25
+ configurable: true,
26
+ enumerable: true,
27
+ get: function() {
28
+ return hook;
29
+ },
30
+ set: function(next) {
31
+ if (next && typeof next === "object") {
32
+ if (!next.renderers || next.renderers.size === 0 && renderers.size > 0) {
33
+ try {
34
+ next.renderers = renderers;
35
+ } catch (_) {
36
+ }
37
+ }
38
+ hook = next;
39
+ }
40
+ }
41
+ });
42
+ try {
43
+ if (global.top && global.top !== global && !global.top.__REACT_DEVTOOLS_GLOBAL_HOOK__) {
44
+ global.top.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook;
45
+ }
46
+ } catch (_) {
47
+ }
48
+ } catch (_) {
49
+ }
50
+ })(typeof globalThis !== "undefined" ? globalThis : window);
51
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../.agents/skills/chippy/extension/devtools-hook-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable */\n/**\n * DevTools-hook shim.\n *\n * Must be installed BEFORE react-dom evaluates. React-DOM checks for\n * window.__REACT_DEVTOOLS_GLOBAL_HOOK__\n * at module evaluation time. If a hook with `inject(internals)` is present,\n * react-dom registers itself into hook.renderers, which exposes the\n * `currentDispatcherRef` that Avalanche debug-render needs to capture hook\n * call stacks.\n *\n * Without this shim in place at evaluation time, hook.renderers stays empty,\n * debug-render cannot patch the dispatcher, and `debugHook()` collapses to\n * a flat fallback (no custom-hook ancestry, no folders).\n *\n * Idempotent: never overwrites an existing real hook (e.g. real React DevTools\n * extension). Only installs an empty shim when nothing is there yet.\n *\n * Browser extension content-script and the local Playwright path both load\n * this script BEFORE the page bootstraps React.\n */\n(function chippyDevtoolsHookShim(global) {\n try {\n if (global.__REACT_DEVTOOLS_GLOBAL_HOOK__) return;\n\n var renderers = new Map();\n var hook = {\n __chippyShim: true,\n supportsFiber: true,\n renderers: renderers,\n inject: function inject(renderer) {\n var id = (renderers.size || 0) + 1;\n renderers.set(id, renderer);\n return id;\n },\n onScheduleFiberRoot: function () {},\n onCommitFiberRoot: function () {},\n onCommitFiberUnmount: function () {},\n onPostCommitFiberRoot: function () {},\n };\n\n Object.defineProperty(global, '__REACT_DEVTOOLS_GLOBAL_HOOK__', {\n configurable: true,\n enumerable: true,\n get: function () { return hook; },\n set: function (next) {\n // Real DevTools may try to install later. Accept it but preserve any\n // renderers we already collected so debug-render can still find them.\n if (next && typeof next === 'object') {\n if (!next.renderers || (next.renderers.size === 0 && renderers.size > 0)) {\n try { next.renderers = renderers; } catch (_) {}\n }\n hook = next;\n }\n },\n });\n\n // Cross-iframe note: if running in a top-frame, mirror so child iframes\n // (Storybook iframe.html) can rely on it too. Safe no-op otherwise.\n try {\n if (global.top && global.top !== global && !global.top.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n global.top.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook;\n }\n } catch (_) {}\n } catch (_) {\n // Never throw at page boot. A failed shim must degrade silently.\n }\n})(typeof globalThis !== 'undefined' ? globalThis : window);\n"],
5
+ "mappings": ";CAqBC,SAAS,uBAAuB,QAAQ;AACvC,MAAI;AACF,QAAI,OAAO,+BAAgC;AAE3C,QAAI,YAAY,oBAAI,IAAI;AACxB,QAAI,OAAO;AAAA,MACT,cAAc;AAAA,MACd,eAAe;AAAA,MACf;AAAA,MACA,QAAQ,SAAS,OAAO,UAAU;AAChC,YAAI,MAAM,UAAU,QAAQ,KAAK;AACjC,kBAAU,IAAI,IAAI,QAAQ;AAC1B,eAAO;AAAA,MACT;AAAA,MACA,qBAAqB,WAAY;AAAA,MAAC;AAAA,MAClC,mBAAmB,WAAY;AAAA,MAAC;AAAA,MAChC,sBAAsB,WAAY;AAAA,MAAC;AAAA,MACnC,uBAAuB,WAAY;AAAA,MAAC;AAAA,IACtC;AAEA,WAAO,eAAe,QAAQ,kCAAkC;AAAA,MAC9D,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,KAAK,WAAY;AAAE,eAAO;AAAA,MAAM;AAAA,MAChC,KAAK,SAAU,MAAM;AAGnB,YAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,cAAI,CAAC,KAAK,aAAc,KAAK,UAAU,SAAS,KAAK,UAAU,OAAO,GAAI;AACxE,gBAAI;AAAE,mBAAK,YAAY;AAAA,YAAW,SAAS,GAAG;AAAA,YAAC;AAAA,UACjD;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAC;AAID,QAAI;AACF,UAAI,OAAO,OAAO,OAAO,QAAQ,UAAU,CAAC,OAAO,IAAI,gCAAgC;AACrF,eAAO,IAAI,iCAAiC;AAAA,MAC9C;AAAA,IACF,SAAS,GAAG;AAAA,IAAC;AAAA,EACf,SAAS,GAAG;AAAA,EAEZ;AACF,GAAG,OAAO,eAAe,cAAc,aAAa,MAAM;",
6
+ "names": []
7
+ }
package/lib/browser.js ADDED
@@ -0,0 +1,15 @@
1
+ // src/package/browser.ts
2
+ async function connectChippy(helperUrl = "http://127.0.0.1:7823") {
3
+ const base = new URL(helperUrl);
4
+ if (!["http:", "https:"].includes(base.protocol)) throw new Error("Chippy helper URL must use HTTP or HTTPS");
5
+ const url = new URL("/__chippy/inject.mjs", base).href;
6
+ const runtime = await import(
7
+ /* @vite-ignore */
8
+ url
9
+ );
10
+ return await runtime.ready;
11
+ }
12
+ export {
13
+ connectChippy
14
+ };
15
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/package/browser.ts"],
4
+ "sourcesContent": ["export interface BrowserConnection {\n chippy: unknown;\n avalanche: unknown;\n connState: string | null;\n integration: unknown;\n activated: boolean | null;\n probesActive: boolean | null;\n}\n\n/** Connect this document through a running Chippy helper. Reconnect after navigation. */\nexport async function connectChippy(helperUrl = 'http://127.0.0.1:7823'): Promise<BrowserConnection> {\n const base = new URL(helperUrl);\n if (!['http:', 'https:'].includes(base.protocol)) throw new Error('Chippy helper URL must use HTTP or HTTPS');\n const url = new URL('/__chippy/inject.mjs', base).href;\n const runtime = await import(/* @vite-ignore */ url);\n return await runtime.ready;\n}\n"],
5
+ "mappings": ";AAUA,eAAsB,cAAc,YAAY,yBAAqD;AACnG,QAAM,OAAO,IAAI,IAAI,SAAS;AAC9B,MAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAG,OAAM,IAAI,MAAM,0CAA0C;AAC5G,QAAM,MAAM,IAAI,IAAI,wBAAwB,IAAI,EAAE;AAClD,QAAM,UAAU,MAAM;AAAA;AAAA,IAA0B;AAAA;AAChD,SAAO,MAAM,QAAQ;AACvB;",
6
+ "names": []
7
+ }