@vpxa/aikit 0.1.195 → 0.1.197

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 (39) hide show
  1. package/package.json +7 -1
  2. package/packages/aikit-client/package.json +28 -0
  3. package/packages/analyzers/package.json +25 -0
  4. package/packages/blocks-core/package.json +23 -0
  5. package/packages/blocks-interactive/dist/flame-graph-CV8KCLKu.mjs +31 -0
  6. package/packages/blocks-interactive/dist/form-SyIoFeT1.mjs +73 -0
  7. package/packages/blocks-interactive/dist/index.d.mts +51 -0
  8. package/packages/blocks-interactive/dist/index.mjs +15 -0
  9. package/packages/blocks-interactive/dist/payload-DyKkZIOX.mjs +1 -0
  10. package/packages/blocks-interactive/dist/picker-CZJricO9.mjs +53 -0
  11. package/packages/blocks-interactive/package.json +51 -0
  12. package/packages/browser/package.json +26 -0
  13. package/packages/chunker/package.json +29 -0
  14. package/packages/cli/package.json +31 -0
  15. package/packages/core/package.json +19 -0
  16. package/packages/dashboard/package.json +29 -0
  17. package/packages/elicitation/package.json +22 -0
  18. package/packages/embeddings/dist/index.d.ts +8 -0
  19. package/packages/embeddings/dist/index.js +1 -1
  20. package/packages/embeddings/package.json +25 -0
  21. package/packages/enterprise-bridge/package.json +22 -0
  22. package/packages/flows/package.json +16 -0
  23. package/packages/indexer/package.json +28 -0
  24. package/packages/present/package.json +21 -0
  25. package/packages/server/dist/dashboard-static-FmfoS46e.js +1 -0
  26. package/packages/server/dist/index.js +1 -1
  27. package/packages/server/dist/resolve-sibling-1oDoO-Re.js +1 -0
  28. package/packages/server/dist/{server-DN97p2DP.js → server-DaayrH3p.js} +138 -134
  29. package/packages/server/dist/settings-static-BtvyIrza.js +1 -0
  30. package/packages/server/package.json +64 -0
  31. package/packages/settings-ui/dist/assets/index-cNrL0PXt.css +1 -0
  32. package/packages/settings-ui/dist/index.html +22 -0
  33. package/packages/settings-ui/package.json +26 -0
  34. package/packages/store/package.json +32 -0
  35. package/packages/tools/package.json +34 -0
  36. package/packages/blocks-core/dist/index.d.ts +0 -600
  37. package/packages/server/dist/dashboard-static-CnXafYTs.js +0 -1
  38. package/packages/server/dist/settings-static-BkVLqWOr.js +0 -1
  39. /package/packages/blocks-core/dist/{index.js → index.mjs} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpxa/aikit",
3
- "version": "0.1.195",
3
+ "version": "0.1.197",
4
4
  "type": "module",
5
5
  "description": "Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents",
6
6
  "license": "MIT",
@@ -21,10 +21,15 @@
21
21
  "author": "AnVPX",
22
22
  "files": [
23
23
  "bin/",
24
+ "packages/*/package.json",
24
25
  "packages/*/dist/**/*.js",
26
+ "packages/*/dist/**/*.mjs",
27
+ "packages/*/dist/**/*.mts",
25
28
  "packages/*/dist/**/*.d.ts",
29
+ "packages/*/dist/**/*.d.mts",
26
30
  "packages/dashboard/dist/**",
27
31
  "packages/present/dist/**",
32
+ "packages/settings-ui/dist/**",
28
33
  "packages/server/viewers/*.html",
29
34
  "packages/chunker/wasm/*.wasm",
30
35
  "packages/chunker/src/queries/**/*.scm",
@@ -109,6 +114,7 @@
109
114
  "start": "node packages/server/dist/index.js",
110
115
  "start:http": "node packages/server/dist/index.js --transport http",
111
116
  "test": "vitest run",
117
+ "verify-publish": "node scripts/verify-publish.mjs",
112
118
  "release": "node scripts/release.mjs",
113
119
  "release:dry": "node scripts/release.mjs --dry-run",
114
120
  "nodeprune": "pnpm clean && pnpm store prune && pnpm -s dlx npkill -D -y",
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@aikit/client",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
12
+ "scripts": {
13
+ "build": "tsc -b",
14
+ "typecheck": "tsc -p tsconfig.json --noEmit",
15
+ "test": "vitest run"
16
+ },
17
+ "dependencies": {
18
+ "@modelcontextprotocol/sdk": "^1.x",
19
+ "@aikit/core": "workspace:*",
20
+ "@aikit/embeddings": "workspace:*",
21
+ "@aikit/store": "workspace:*",
22
+ "@aikit/tools": "workspace:*"
23
+ },
24
+ "devDependencies": {
25
+ "typescript": "^6.x",
26
+ "vitest": "^4.x"
27
+ }
28
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@aikit/analyzers",
3
+ "version": "0.1.0",
4
+ "description": "Codebase analyzers: structure, dependencies, symbols, patterns, diagrams",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "clean": "rimraf dist",
17
+ "test": "vitest run"
18
+ },
19
+ "dependencies": {
20
+ "@aikit/chunker": "workspace:*"
21
+ },
22
+ "devDependencies": {
23
+ "@aikit/core": "workspace:*"
24
+ }
25
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@aikit/blocks-core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.mjs",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./tokens.css": "./src/tokens.css"
13
+ },
14
+ "scripts": {
15
+ "build": "tsdown src/index.ts --format esm",
16
+ "dev": "tsdown src/index.ts --format esm --dts --watch",
17
+ "tokens:check": "node scripts/generate-tokens.ts --check"
18
+ },
19
+ "devDependencies": {
20
+ "tsdown": "^0.x",
21
+ "typescript": "^6.x"
22
+ }
23
+ }
@@ -0,0 +1,31 @@
1
+ import{o as e,t}from"./payload-DyKkZIOX.mjs";function n(e){let t=e.createElement(`style`);return t.textContent=`
2
+ .bk-flame {
3
+ display: grid;
4
+ gap: var(--dt-space-2);
5
+ }
6
+
7
+ .bk-flame-bar {
8
+ min-height: 2rem;
9
+ padding: 0 var(--dt-space-3);
10
+ border: 0;
11
+ border-radius: var(--dt-radius-md);
12
+ color: white;
13
+ display: flex;
14
+ align-items: center;
15
+ overflow: hidden;
16
+ cursor: zoom-in;
17
+ box-shadow: var(--dt-shadow-sm);
18
+ }
19
+
20
+ .bk-flame-bar[data-root='true'] {
21
+ cursor: zoom-out;
22
+ }
23
+
24
+ .bk-flame-label {
25
+ white-space: nowrap;
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
28
+ font-size: var(--dt-font-size-sm);
29
+ font-weight: 600;
30
+ }
31
+ `,t}function r(t){if(!e(t)||typeof t.name!=`string`)return null;let n=typeof t.total==`number`?t.total:typeof t.value==`number`?t.value:0,i=Array.isArray(t.children)?t.children.flatMap(e=>{let t=r(e);return t?[t]:[]}):[];return{name:t.name,total:n,self:typeof t.self==`number`?t.self:void 0,children:i}}function i(e){return`hsl(${16+e*9%30} 82% ${Math.max(38,62-e*4)}%)`}function a(a,o={}){let s=t(a.ownerDocument),c=e(s)?r(s.profile):null;if(!c)return()=>{};let l=a.ownerDocument,u=n(l),d=a.innerHTML,f=[c],p=()=>{let e=f[f.length-1]??c;a.innerHTML=``;let t=l.createElement(`div`);t.className=`bk-flame`;let n=(r,a,o)=>{let s=l.createElement(`div`);s.style.paddingLeft=`${a*12}px`;let c=l.createElement(`div`);c.className=`bk-flame-bar`,c.dataset.root=String(o[o.length-1]===f[f.length-1]),c.style.background=i(a),c.style.width=`${Math.max(8,r.total/Math.max(e.total,1)*100)}%`,c.title=r.self===void 0?`${r.name}: ${r.total}`:`${r.name}: ${r.total} (self: ${r.self})`;let u=l.createElement(`span`);u.className=`bk-flame-label`,u.textContent=`${r.name} (${r.total})`,c.appendChild(u),c.addEventListener(`click`,()=>{f=o[o.length-1]===f[f.length-1]&&f.length>1?f.slice(0,-1):o,p()}),s.appendChild(c),t.appendChild(s);for(let e of r.children)n(e,a+1,[...o,e])};n(e,0,[...f]),a.appendChild(t)};return l.head?.appendChild(u),p(),()=>{u.remove(),a.innerHTML=d}}export{a as hydrateFlameGraph};
@@ -0,0 +1,73 @@
1
+ import{o as e,t}from"./payload-DyKkZIOX.mjs";function n(e){let t=e.createElement(`style`);return t.textContent=`
2
+ .bk-form {
3
+ display: grid;
4
+ gap: var(--dt-space-4);
5
+ padding: var(--dt-space-5);
6
+ border: 1px solid var(--dt-border-default);
7
+ border-radius: var(--dt-radius-xl);
8
+ background: linear-gradient(180deg, var(--dt-bg-secondary), var(--dt-bg-primary));
9
+ box-shadow: var(--dt-shadow-sm);
10
+ }
11
+
12
+ .bk-form-group {
13
+ display: grid;
14
+ gap: var(--dt-space-2);
15
+ }
16
+
17
+ .bk-form-label {
18
+ color: var(--dt-text-primary);
19
+ font-size: var(--dt-font-size-sm);
20
+ font-weight: 600;
21
+ }
22
+
23
+ .bk-form-control {
24
+ width: 100%;
25
+ box-sizing: border-box;
26
+ padding: var(--dt-space-3) var(--dt-space-4);
27
+ border: 1px solid var(--dt-border-default);
28
+ border-radius: var(--dt-radius-lg);
29
+ background: var(--dt-bg-primary);
30
+ color: var(--dt-text-primary);
31
+ font: inherit;
32
+ }
33
+
34
+ .bk-form-control:focus {
35
+ outline: 2px solid var(--dt-accent-fg);
36
+ outline-offset: 2px;
37
+ }
38
+
39
+ .bk-form-checkbox {
40
+ display: flex;
41
+ align-items: center;
42
+ gap: var(--dt-space-3);
43
+ color: var(--dt-text-primary);
44
+ }
45
+
46
+ .bk-form-checkbox input {
47
+ width: var(--dt-space-5);
48
+ height: var(--dt-space-5);
49
+ margin: 0;
50
+ accent-color: var(--dt-accent-fg);
51
+ }
52
+
53
+ .bk-form textarea {
54
+ min-height: 8rem;
55
+ resize: vertical;
56
+ }
57
+
58
+ .bk-form-actions {
59
+ display: flex;
60
+ justify-content: flex-end;
61
+ }
62
+
63
+ .bk-form-submit {
64
+ border: 0;
65
+ border-radius: var(--dt-radius-lg);
66
+ padding: var(--dt-space-3) var(--dt-space-5);
67
+ background: var(--dt-accent-fg);
68
+ color: var(--dt-accent-subtle);
69
+ cursor: pointer;
70
+ font: inherit;
71
+ font-weight: 600;
72
+ }
73
+ `,t}function r(t){return Array.isArray(t)?t.flatMap(t=>typeof t==`string`?[{label:t,value:t}]:e(t)&&typeof t.label==`string`&&typeof t.value==`string`?[{label:t.label,value:t.value}]:[]):[]}function i(t){return!e(t)||!Array.isArray(t.fields)?[]:t.fields.flatMap(t=>!e(t)||typeof t.name!=`string`||typeof t.label!=`string`?[]:[{name:t.name,label:t.label,type:typeof t.type==`string`?t.type:`text`,required:typeof t.required==`boolean`?t.required:!1,placeholder:typeof t.placeholder==`string`?t.placeholder:void 0,default:typeof t.default==`string`?t.default:void 0,options:r(t.options),value:typeof t.value==`string`||typeof t.value==`boolean`?t.value:void 0}])}function a(e){return e.type===`checkbox`?typeof e.value==`boolean`?e.value:!1:typeof e.value==`string`?e.value:typeof e.default==`string`?e.default:``}function o(e,t){let n={};for(let r of t){let t=e.querySelector(`[name="${r.name}"]`);if(t){if(r.type===`checkbox`&&t.tagName===`INPUT`){n[r.name]=t.checked;continue}if(t.tagName===`INPUT`||t.tagName===`TEXTAREA`){n[r.name]=t.value;continue}t.tagName===`SELECT`&&(n[r.name]=t.value)}}return n}function s(e,r={}){let s=i(t(e.ownerDocument));if(s.length===0)return()=>{};let c=e.ownerDocument,l=e.parentElement;if(!l)return()=>{};let u=n(c),d=c.createElement(`form`);d.className=`bk-form`,d.noValidate=!0;for(let e of s){let t=c.createElement(`label`);if(t.className=`bk-form-group`,e.type===`checkbox`){t.className=`bk-form-checkbox`;let n=c.createElement(`input`);n.type=`checkbox`,n.name=e.name,n.checked=!!a(e),e.required&&(n.required=!0);let r=c.createElement(`span`);r.textContent=e.label,t.append(n,r),d.appendChild(t);continue}let n=c.createElement(`span`);if(n.className=`bk-form-label`,n.textContent=e.label,t.appendChild(n),e.type===`select`){let n=c.createElement(`select`);n.className=`bk-form-control`,n.name=e.name,e.required&&(n.required=!0);for(let t of e.options??[]){let r=typeof t==`string`?{label:t,value:t}:t,i=c.createElement(`option`);i.value=r.value,i.textContent=r.label,i.selected=r.value===String(a(e)),n.appendChild(i)}t.appendChild(n),d.appendChild(t);continue}if(e.type===`textarea`){let n=c.createElement(`textarea`);n.className=`bk-form-control`,n.name=e.name,n.value=String(a(e)),e.placeholder&&(n.placeholder=e.placeholder),e.required&&(n.required=!0),t.appendChild(n),d.appendChild(t);continue}let r=c.createElement(`input`);r.className=`bk-form-control`,r.type=e.type||`text`,r.name=e.name,r.value=String(a(e)),e.placeholder&&(r.placeholder=e.placeholder),e.required&&(r.required=!0),t.appendChild(r),d.appendChild(t)}let f=c.createElement(`div`);f.className=`bk-form-actions`;let p=c.createElement(`button`);p.type=`submit`,p.className=`bk-form-submit`,p.textContent=`Submit`,f.appendChild(p),d.appendChild(f);let m=e=>{e.preventDefault(),r.onAction?.(`submit`,JSON.stringify(o(d,s)))};return d.addEventListener(`submit`,m),c.head?.appendChild(u),l.replaceChild(d,e),()=>{d.removeEventListener(`submit`,m),u.remove(),d.parentElement&&d.parentElement.replaceChild(e,d)}}export{s as hydrateForm};
@@ -0,0 +1,51 @@
1
+ //#region packages/blocks-interactive/src/types.d.ts
2
+ /** Cleanup function returned by hydration — call to remove all listeners. */
3
+ type Cleanup = () => void;
4
+ /** Options for hydration. */
5
+ interface HydrateOptions {
6
+ /** Callback for action events (button clicks, select changes). */
7
+ onAction?: (actionId: string, value?: string) => void;
8
+ /** Container to scope hydration to (default: document.body). */
9
+ container?: Element;
10
+ }
11
+ //#endregion
12
+ //#region packages/blocks-interactive/src/hydrate.d.ts
13
+ /**
14
+ * Hydrate all interactive blocks within a container.
15
+ */
16
+ declare function hydrate(options?: HydrateOptions): Cleanup;
17
+ /**
18
+ * Hydrate only the interactive islands present in the DOM.
19
+ */
20
+ declare function hydrateAsync(options?: HydrateOptions): Promise<Cleanup>;
21
+ //#endregion
22
+ //#region packages/blocks-interactive/src/island-registry.d.ts
23
+ interface LoadedIsland {
24
+ hydrate: (element: Element, options?: HydrateOptions) => Cleanup;
25
+ }
26
+ interface IslandDefinition {
27
+ selector: string;
28
+ matches?: (element: Element, options?: HydrateOptions) => boolean;
29
+ load: () => Promise<LoadedIsland>;
30
+ }
31
+ declare const ISLAND_REGISTRY: IslandDefinition[];
32
+ //#endregion
33
+ //#region packages/blocks-interactive/src/islands/actions.d.ts
34
+ /**
35
+ * Hydrate action buttons and selects inside an actions block.
36
+ */
37
+ declare function hydrateActions(container: Element, onAction: (id: string, value?: string) => void): Cleanup;
38
+ //#endregion
39
+ //#region packages/blocks-interactive/src/islands/table.d.ts
40
+ /**
41
+ * Hydrate a blocks-core table with client-side sorting and filtering.
42
+ */
43
+ declare function hydrateTable(table: Element): Cleanup;
44
+ //#endregion
45
+ //#region packages/blocks-interactive/src/islands/tree.d.ts
46
+ /**
47
+ * Hydrate a blocks-core tree with toggle-all controls and keyboard navigation.
48
+ */
49
+ declare function hydrateTree(tree: Element): Cleanup;
50
+ //#endregion
51
+ export { type Cleanup, type HydrateOptions, ISLAND_REGISTRY, type IslandDefinition, type LoadedIsland, hydrate, hydrateActions, hydrateAsync, hydrateTable, hydrateTree };
@@ -0,0 +1,15 @@
1
+ import{a as e,i as t,n,r}from"./payload-DyKkZIOX.mjs";var i=Object.defineProperty,a=(e,t)=>{let n={};for(var r in e)i(n,r,{get:e[r],enumerable:!0});return t||i(n,Symbol.toStringTag,{value:`Module`}),n};const o=[{selector:`.bk-table`,matches:e=>!r(e.ownerDocument),load:()=>Promise.resolve().then(()=>p).then(e=>({hydrate:t=>e.hydrateTable(t)}))},{selector:`.bk-table`,matches:(t,n)=>r(t.ownerDocument)&&e(t,`.bk-table`,n),load:()=>import(`./form-SyIoFeT1.mjs`).then(e=>({hydrate:(t,n)=>e.hydrateForm(t,n)}))},{selector:`.bk-tree`,matches:e=>!n(e.ownerDocument),load:()=>Promise.resolve().then(()=>x).then(e=>({hydrate:t=>e.hydrateTree(t)}))},{selector:`.bk-tree`,matches:e=>n(e.ownerDocument),load:()=>import(`./flame-graph-CV8KCLKu.mjs`).then(e=>({hydrate:(t,n)=>e.hydrateFlameGraph(t,n)}))},{selector:`.bk-actions`,load:()=>Promise.resolve().then(()=>s).then(e=>({hydrate:(t,n)=>n?.onAction?e.hydrateActions(t,n.onAction):()=>{}}))},{selector:`.bk-checklist`,load:()=>Promise.resolve().then(()=>l).then(e=>({hydrate:(t,n)=>e.hydrateChecklist(t,n)}))},{selector:`.bk-cards`,matches:(n,r)=>t(n.ownerDocument)&&e(n,`.bk-cards`,r),load:()=>import(`./picker-CZJricO9.mjs`).then(e=>({hydrate:(t,n)=>e.hydratePicker(t,n)}))}];var s=a({hydrateActions:()=>c});function c(e,t){let n=[];for(let r of Array.from(e.querySelectorAll(`[data-action-id]`))){let e=r.getAttribute(`data-action-id`);if(!e)continue;if(r.tagName===`SELECT`){let i=r,a=()=>{t(e,i.value)};i.addEventListener(`change`,a),n.push(()=>{i.removeEventListener(`change`,a)});continue}let i=()=>{t(e)};r.addEventListener(`click`,i),n.push(()=>{r.removeEventListener(`click`,i)})}return()=>{for(let e of n)e()}}var l=a({hydrateChecklist:()=>f});function u(e){let t=e.createElement(`style`);return t.textContent=`
2
+ .bk-checklist-progress {
3
+ margin-bottom: var(--dt-space-3);
4
+ color: var(--dt-text-secondary);
5
+ font-size: var(--dt-font-size-sm);
6
+ font-weight: 600;
7
+ }
8
+
9
+ .bk-checklist-box {
10
+ width: var(--dt-space-6);
11
+ height: var(--dt-space-6);
12
+ margin: 0;
13
+ accent-color: var(--dt-accent-fg);
14
+ }
15
+ `,t}function d(e,t){let n=t.filter(e=>e.getAttribute(`data-checked`)===`true`).length,r=t.length;return e.textContent=`${n}/${r} complete`,{complete:n,total:r}}function f(e,t={}){let n=Array.from(e.querySelectorAll(`.bk-checklist-item`));if(n.length===0)return()=>{};let r=e.ownerDocument,i=u(r),a=r.createElement(`div`);a.className=`bk-checklist-progress`,e.parentElement?.insertBefore(a,e),r.head?.appendChild(i);let o=[];for(let[e,i]of n.entries()){let s=i.querySelector(`.bk-checklist-icon`),c=i.querySelector(`.bk-checklist-label`)?.textContent?.trim()??``,l=r.createElement(`input`);l.type=`checkbox`,l.className=`bk-checklist-box`,l.checked=i.getAttribute(`data-checked`)===`true`;let u=()=>{i.setAttribute(`data-checked`,String(l.checked));let r=d(a,n);t.onAction?.(`checklist`,JSON.stringify({index:e,label:c,checked:l.checked,complete:r.complete,total:r.total}))};l.addEventListener(`change`,u),o.push(()=>{l.removeEventListener(`change`,u)}),s?s.replaceWith(l):i.insertBefore(l,i.firstChild)}return d(a,n),()=>{for(let e of o)e();a.remove(),i.remove();for(let e of n){let t=e.querySelector(`.bk-checklist-box`);if(!t)continue;let n=r.createElement(`span`);n.className=`bk-checklist-icon`,n.textContent=e.getAttribute(`data-checked`)===`true`?`✓`:`×`,t.replaceWith(n)}}}var p=a({hydrateTable:()=>b});const m=`data-sort-label`,h=`data-sort-dir`,g=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});function _(e){let t=e.getAttribute(m);if(t!==null)return t;let n=e.textContent?.trim()??``;return e.setAttribute(m,n),n}function v(e,t,n){for(let[r,i]of e.entries())i.textContent=_(i),r===t?(i.setAttribute(h,n),i.append(` ${n===`asc`?`▲`:`▼`}`)):i.removeAttribute(h)}function y(e,t){return e.querySelectorAll(`td`)[t]?.textContent?.trim()??``}function b(e){let t=Array.from(e.querySelectorAll(`thead th`)),n=e.querySelector(`tbody`);if(!n||t.length===0)return()=>{};let r=Array.from(n.querySelectorAll(`tr`)),i=e.parentElement,a=null,o=`asc`,s=``,c=null,l=[],u=()=>{let e=[...r];if(a!==null){let t=a;e.sort((e,n)=>{let r=g.compare(y(e,t),y(n,t));return o===`asc`?r:-r})}for(let t of e){n.appendChild(t);let e=t.textContent?.toLowerCase()??``;t.hidden=s.length>0&&!e.includes(s)}v(t,a,o)};for(let[e,n]of t.entries()){_(n);let t=()=>{a===e?o=o===`asc`?`desc`:`asc`:(a=e,o=`asc`),u()};n.style.cursor=`pointer`,n.addEventListener(`click`,t),l.push(()=>{n.removeEventListener(`click`,t)})}if(r.length>5&&i){c=i.ownerDocument.createElement(`input`),c.className=`bk-table-filter`,c.placeholder=`Filter...`;let t=()=>{s=c?.value.toLowerCase().trim()??``,u()};i.insertBefore(c,e),c.addEventListener(`input`,t),l.push(()=>{c?.removeEventListener(`input`,t),c?.remove(),c=null})}return u(),()=>{for(let e of l)e();for(let e of t)e.textContent=_(e),e.removeAttribute(h),e.removeAttribute(m),e.style.removeProperty(`cursor`);for(let e of r)e.hidden=!1}}var x=a({hydrateTree:()=>O});function S(e){for(let t of Array.from(e.children))if(t.tagName===`SUMMARY`)return t;return null}function C(e){let t=e.closest(`details`);if(!t)return null;let n=t.parentElement;for(;n;){if(n.tagName===`DETAILS`)return S(n);n=n.parentElement}return null}function w(e){return Array.from(e.querySelectorAll(`summary`))}function T(e){return e.open||e.hasAttribute(`open`)}function E(e,t){e.open=t,t?e.setAttribute(`open`,``):e.removeAttribute(`open`)}function D(e,t){e.textContent=t.every(e=>T(e))?`Collapse all`:`Expand all`}function O(e){let t=Array.from(e.querySelectorAll(`details`));if(t.length===0)return()=>{};let n=e.ownerDocument.createElement(`button`);n.type=`button`,n.className=`bk-tree-toggle-all`,e.insertBefore(n,e.firstChild);let r=()=>{let e=t.some(e=>!T(e));for(let n of t)E(n,e);D(n,t)},i=()=>{r()};n.addEventListener(`click`,i);let a=t.map(e=>{let r=()=>{D(n,t)};return e.addEventListener(`toggle`,r),()=>{e.removeEventListener(`toggle`,r)}}),o=w(e).map(t=>{t.tabIndex=0;let n=n=>{let r=w(e),i=r.indexOf(t);if(i===-1)return;let a=t.closest(`details`);if(n.key===`ArrowDown`){r[i+1]?.focus(),n.preventDefault();return}if(n.key===`ArrowUp`){r[i-1]?.focus(),n.preventDefault();return}if(n.key===`ArrowRight`){if(a&&!T(a))E(a,!0);else{let e=r[i+1];e&&a?.contains(e)&&e.focus()}n.preventDefault();return}n.key===`ArrowLeft`&&(a&&T(a)?E(a,!1):C(t)?.focus(),n.preventDefault())};return t.addEventListener(`keydown`,n),()=>{t.removeEventListener(`keydown`,n)}});return D(n,t),()=>{n.removeEventListener(`click`,i);for(let e of a)e();for(let e of o)e();n.remove()}}const k=`data-hydrated`;function A(e,t){let n=[];return e.matches(t)&&n.push(e),n.push(...Array.from(e.querySelectorAll(t))),n}function j(e,t,n){e.push(()=>{n(),t.removeAttribute(k)})}function M(e={}){let t=e.container??document.body,n=[];for(let e of A(t,`.bk-table`))e.hasAttribute(k)||(e.setAttribute(k,``),j(n,e,b(e)));for(let e of A(t,`.bk-tree`))e.hasAttribute(k)||(e.setAttribute(k,``),j(n,e,O(e)));for(let r of A(t,`.bk-checklist`))r.hasAttribute(k)||(r.setAttribute(k,``),j(n,r,f(r,e)));for(let r of A(t,`.bk-actions`))if(!r.hasAttribute(k)){if(r.setAttribute(k,``),e.onAction){j(n,r,c(r,e.onAction));continue}n.push(()=>{r.removeAttribute(k)})}return()=>{for(let e of n)e();n.length=0}}async function N(e={}){let t=e.container??document.body,n={...e,container:t},r=[],i=o.map(e=>({definition:e,elements:A(t,e.selector).filter(t=>!t.hasAttribute(k)&&(e.matches?.(t,n)??!0))})).filter(({elements:e})=>e.length>0);if(i.length===0)return()=>{};let a=await Promise.all(i.map(async({definition:e,elements:t})=>({island:await e.load(),elements:t})));for(let{island:e,elements:t}of a)for(let i of t)i.hasAttribute(k)||(i.setAttribute(k,``),j(r,i,e.hydrate(i,n)));return()=>{for(let e of r)e();r.length=0}}export{o as ISLAND_REGISTRY,M as hydrate,c as hydrateActions,N as hydrateAsync,b as hydrateTable,O as hydrateTree};
@@ -0,0 +1 @@
1
+ function e(e){return typeof e==`object`&&!!e}function t(t){let n=t.getElementById(`surface-payload`);if(!n?.textContent)return{};try{let t=JSON.parse(n.textContent);return e(t)?t:{}}catch{return{}}}function n(e){return t(e).data}function r(t){let r=n(t);return e(r)&&Array.isArray(r.fields)}function i(t){let r=n(t);return e(r)&&e(r.profile)}function a(t){let r=n(t);return e(r)&&Array.isArray(r.items)}function o(e,t,n){return(n?.container??e.ownerDocument.body).querySelector(t)===e}export{o as a,a as i,i as n,e as o,r,n as t};
@@ -0,0 +1,53 @@
1
+ import{o as e,t}from"./payload-DyKkZIOX.mjs";function n(e){let t=e.createElement(`style`);return t.textContent=`
2
+ .bk-picker-toolbar {
3
+ display: grid;
4
+ gap: var(--dt-space-3);
5
+ margin-bottom: var(--dt-space-4);
6
+ }
7
+
8
+ .bk-picker-search {
9
+ width: 100%;
10
+ box-sizing: border-box;
11
+ padding: var(--dt-space-3) var(--dt-space-4);
12
+ border: 1px solid var(--dt-border-default);
13
+ border-radius: var(--dt-radius-lg);
14
+ background: var(--dt-bg-primary);
15
+ color: var(--dt-text-primary);
16
+ font: inherit;
17
+ }
18
+
19
+ .bk-picker-done {
20
+ justify-self: start;
21
+ border: 0;
22
+ border-radius: var(--dt-radius-lg);
23
+ padding: var(--dt-space-3) var(--dt-space-5);
24
+ background: var(--dt-accent-fg);
25
+ color: var(--dt-accent-subtle);
26
+ cursor: pointer;
27
+ font: inherit;
28
+ font-weight: 600;
29
+ }
30
+
31
+ .bk-card--selected {
32
+ position: relative;
33
+ outline: 2px solid var(--dt-accent-fg);
34
+ outline-offset: 2px;
35
+ box-shadow: 0 0 0 1px var(--dt-accent-fg), var(--dt-shadow-md);
36
+ }
37
+
38
+ .bk-card-checkmark {
39
+ position: absolute;
40
+ top: var(--dt-space-3);
41
+ right: var(--dt-space-3);
42
+ width: var(--dt-space-6);
43
+ height: var(--dt-space-6);
44
+ border-radius: 999px;
45
+ background: var(--dt-success-fg);
46
+ color: var(--dt-success-subtle);
47
+ display: inline-flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ font-size: var(--dt-font-size-sm);
51
+ font-weight: 700;
52
+ }
53
+ `,t}function r(t){return Array.isArray(t)?t.flatMap(t=>!e(t)||typeof t.id!=`string`||typeof t.label!=`string`?[]:[{id:t.id,label:t.label}]):[]}function i(t){return Array.isArray(t)?t.flatMap(t=>!e(t)||typeof t.id!=`string`||typeof t.label!=`string`?[]:[{id:t.id,label:t.label,category:typeof t.category==`string`?t.category:void 0,tags:Array.isArray(t.tags)?t.tags.filter(e=>typeof e==`string`):[]}]):[]}function a(t){if(!e(t))return[];let n=r(t.categories),a=i(t.items);if(n.length===0)return a;let o=[],s=new Set;for(let e of n)for(let t of a)t.category===e.id&&(o.push(t),s.add(t.id));for(let e of a)s.has(e.id)||o.push(e);return o}function o(e,t){e.classList.toggle(`bk-card--selected`,t);let n=e.querySelector(`.bk-card-checkmark`);if(t){if(!n){let t=e.ownerDocument.createElement(`span`);t.className=`bk-card-checkmark`,t.textContent=`✓`,e.appendChild(t)}return}n?.remove()}function s(e,r={}){let i=a(t(e.ownerDocument));if(i.length===0)return()=>{};let s=r.container??e.ownerDocument.body;if(Array.from(s.querySelectorAll(`.bk-cards`))[0]!==e)return()=>{};let c=Array.from(s.querySelectorAll(`.bk-card`)).flatMap((e,t)=>{let n=i[t];return n?[{card:e,item:n}]:[]}),l=e.ownerDocument,u=n(l),d=l.createElement(`div`);d.className=`bk-picker-toolbar`;let f=l.createElement(`input`);f.className=`bk-picker-search`,f.placeholder=`Filter items`;let p=l.createElement(`button`);p.type=`button`,p.className=`bk-picker-done`,p.textContent=`Done`,d.append(f,p),e.parentElement?.insertBefore(d,e),l.head?.appendChild(u);let m=new Set,h=()=>{let e=f.value.toLowerCase().trim();for(let{card:t,item:n}of c){let r=`${n.label} ${n.tags.join(` `)}`.toLowerCase();t.hidden=e.length>0&&!r.includes(e)}},g=[];for(let{card:e,item:t}of c){e.dataset.pickerId=t.id,e.tabIndex=0;let n=()=>{if(m.has(t.id)){m.delete(t.id),o(e,!1);return}m.add(t.id),o(e,!0)},r=()=>{n()},i=e=>{e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),n())};e.addEventListener(`click`,r),e.addEventListener(`keydown`,i),g.push(()=>{e.removeEventListener(`click`,r),e.removeEventListener(`keydown`,i),e.hidden=!1,e.removeAttribute(`data-picker-id`),e.removeAttribute(`tabindex`),o(e,!1)})}let _=()=>{h()},v=()=>{r.onAction?.(`pick`,JSON.stringify(Array.from(m)))};return f.addEventListener(`input`,_),p.addEventListener(`click`,v),g.push(()=>{f.removeEventListener(`input`,_),p.removeEventListener(`click`,v)}),h(),()=>{for(let e of g)e();d.remove(),u.remove()}}export{s as hydratePicker};
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@aikit/blocks-interactive",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.mjs",
6
+ "types": "dist/index.d.mts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.mjs",
10
+ "types": "./dist/index.d.mts"
11
+ },
12
+ "./islands/table": {
13
+ "import": "./dist/islands/table.mjs",
14
+ "types": "./dist/islands/table.d.mts"
15
+ },
16
+ "./islands/tree": {
17
+ "import": "./dist/islands/tree.mjs",
18
+ "types": "./dist/islands/tree.d.mts"
19
+ },
20
+ "./islands/actions": {
21
+ "import": "./dist/islands/actions.mjs",
22
+ "types": "./dist/islands/actions.d.mts"
23
+ },
24
+ "./islands/flame-graph": {
25
+ "import": "./dist/islands/flame-graph.mjs",
26
+ "types": "./dist/islands/flame-graph.d.mts"
27
+ },
28
+ "./islands/form": {
29
+ "import": "./dist/islands/form.mjs",
30
+ "types": "./dist/islands/form.d.mts"
31
+ },
32
+ "./islands/picker": {
33
+ "import": "./dist/islands/picker.mjs",
34
+ "types": "./dist/islands/picker.d.mts"
35
+ },
36
+ "./islands/checklist": {
37
+ "import": "./dist/islands/checklist.mjs",
38
+ "types": "./dist/islands/checklist.d.mts"
39
+ }
40
+ },
41
+ "scripts": {
42
+ "build": "tsdown src/index.ts src/islands/table.ts src/islands/tree.ts src/islands/actions.ts src/islands/flame-graph.ts src/islands/form.ts src/islands/picker.ts src/islands/checklist.ts --format esm --dts --target esnext --splitting --clean",
43
+ "dev": "tsdown src/index.ts src/islands/table.ts src/islands/tree.ts src/islands/actions.ts src/islands/flame-graph.ts src/islands/form.ts src/islands/picker.ts src/islands/checklist.ts --format esm --dts --target esnext --splitting --watch",
44
+ "test": "vitest run --root ../.. packages/blocks-interactive/src/hydrate.test.ts"
45
+ },
46
+ "devDependencies": {
47
+ "@aikit/blocks-core": "workspace:*",
48
+ "tsdown": "^0.x",
49
+ "typescript": "^6.x"
50
+ }
51
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@aikit/browser",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest"
18
+ },
19
+ "dependencies": {
20
+ "playwright-core": "^1.x",
21
+ "zod": "^4.x"
22
+ },
23
+ "devDependencies": {
24
+ "@aikit/core": "workspace:*"
25
+ }
26
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@aikit/chunker",
3
+ "version": "0.1.0",
4
+ "description": "AST-based code chunking and analysis via web-tree-sitter WASM",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "clean": "rimraf dist",
17
+ "vendor:wasm": "node scripts/vendor-wasm.mjs",
18
+ "prepublish": "node scripts/vendor-wasm.mjs --verify-only",
19
+ "postinstall": "node scripts/vendor-wasm.mjs || echo WASM vendoring skipped (deps not available)",
20
+ "test": "vitest run"
21
+ },
22
+ "dependencies": {
23
+ "web-tree-sitter": "~0.24.7"
24
+ },
25
+ "devDependencies": {
26
+ "@aikit/core": "workspace:*",
27
+ "tree-sitter-wasms": "~0.1.13"
28
+ }
29
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@aikit/cli",
3
+ "version": "0.1.0",
4
+ "description": "Command-line interface with 39 commands",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "clean": "rimraf dist",
17
+ "test": "vitest run"
18
+ },
19
+ "devDependencies": {
20
+ "@aikit/analyzers": "workspace:*",
21
+ "@aikit/chunker": "workspace:*",
22
+ "@aikit/client": "workspace:*",
23
+ "@aikit/core": "workspace:*",
24
+ "@aikit/embeddings": "workspace:*",
25
+ "@aikit/indexer": "workspace:*",
26
+ "@aikit/server": "workspace:*",
27
+ "@aikit/store": "workspace:*",
28
+ "@aikit/tools": "workspace:*",
29
+ "@aikit/flows": "workspace:*"
30
+ }
31
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@aikit/core",
3
+ "version": "0.1.0",
4
+ "description": "Shared types, config, logger, and constants",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "clean": "rimraf dist",
17
+ "test": "vitest run"
18
+ }
19
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@aikit/dashboard",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": "./src/main.tsx"
8
+ },
9
+ "scripts": {
10
+ "dev": "vite",
11
+ "build": "vite build",
12
+ "preview": "vite preview",
13
+ "test": "vitest run"
14
+ },
15
+ "dependencies": {
16
+ "@aikit/client": "workspace:*",
17
+ "@xyflow/react": "^12.x",
18
+ "react": "^19.x",
19
+ "react-dom": "^19.x",
20
+ "zustand": "^5.x"
21
+ },
22
+ "devDependencies": {
23
+ "@types/react": "^19.x",
24
+ "@types/react-dom": "^19.x",
25
+ "@vitejs/plugin-react": "^6.x",
26
+ "typescript": "^6.x",
27
+ "vite": "^8.x"
28
+ }
29
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@aikit/elicitation",
3
+ "version": "0.1.0",
4
+ "description": "MCP elicitation primitives — field builders, request construction, response normalization",
5
+ "private": true,
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "clean": "rimraf dist",
17
+ "test": "vitest run"
18
+ },
19
+ "dependencies": {
20
+ "@modelcontextprotocol/sdk": "^1.x"
21
+ }
22
+ }
@@ -60,9 +60,15 @@ declare class EmbedderProxy implements IEmbedder {
60
60
  private shutdownPromise;
61
61
  private currentDimensions;
62
62
  private currentModelId;
63
+ private consecutiveFailures;
64
+ private circuitOpenUntil;
65
+ private static readonly CIRCUIT_BREAKER_THRESHOLD;
66
+ private static readonly CIRCUIT_BREAKER_COOLDOWN_MS;
63
67
  constructor(options?: EmbedderProxyOptions);
64
68
  get dimensions(): number;
65
69
  get modelId(): string;
70
+ /** Whether the circuit breaker is currently open (embedder in cooldown) */
71
+ get isCircuitOpen(): boolean;
66
72
  initialize(): Promise<void>;
67
73
  embed(text: string): Promise<Float32Array>;
68
74
  embedQuery(text: string): Promise<Float32Array>;
@@ -85,6 +91,8 @@ declare class EmbedderProxy implements IEmbedder {
85
91
  private requireChildState;
86
92
  private clearChildReference;
87
93
  private markWorkerUnresponsive;
94
+ private refreshCircuitBreaker;
95
+ private assertCircuitClosed;
88
96
  private rejectPendingForChild;
89
97
  private resolveLifecycleIfOwned;
90
98
  private rejectLifecycleIfOwned;