@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.
- package/package.json +7 -1
- package/packages/aikit-client/package.json +28 -0
- package/packages/analyzers/package.json +25 -0
- package/packages/blocks-core/package.json +23 -0
- package/packages/blocks-interactive/dist/flame-graph-CV8KCLKu.mjs +31 -0
- package/packages/blocks-interactive/dist/form-SyIoFeT1.mjs +73 -0
- package/packages/blocks-interactive/dist/index.d.mts +51 -0
- package/packages/blocks-interactive/dist/index.mjs +15 -0
- package/packages/blocks-interactive/dist/payload-DyKkZIOX.mjs +1 -0
- package/packages/blocks-interactive/dist/picker-CZJricO9.mjs +53 -0
- package/packages/blocks-interactive/package.json +51 -0
- package/packages/browser/package.json +26 -0
- package/packages/chunker/package.json +29 -0
- package/packages/cli/package.json +31 -0
- package/packages/core/package.json +19 -0
- package/packages/dashboard/package.json +29 -0
- package/packages/elicitation/package.json +22 -0
- package/packages/embeddings/dist/index.d.ts +8 -0
- package/packages/embeddings/dist/index.js +1 -1
- package/packages/embeddings/package.json +25 -0
- package/packages/enterprise-bridge/package.json +22 -0
- package/packages/flows/package.json +16 -0
- package/packages/indexer/package.json +28 -0
- package/packages/present/package.json +21 -0
- package/packages/server/dist/dashboard-static-FmfoS46e.js +1 -0
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/resolve-sibling-1oDoO-Re.js +1 -0
- package/packages/server/dist/{server-DN97p2DP.js → server-DaayrH3p.js} +138 -134
- package/packages/server/dist/settings-static-BtvyIrza.js +1 -0
- package/packages/server/package.json +64 -0
- package/packages/settings-ui/dist/assets/index-cNrL0PXt.css +1 -0
- package/packages/settings-ui/dist/index.html +22 -0
- package/packages/settings-ui/package.json +26 -0
- package/packages/store/package.json +32 -0
- package/packages/tools/package.json +34 -0
- package/packages/blocks-core/dist/index.d.ts +0 -600
- package/packages/server/dist/dashboard-static-CnXafYTs.js +0 -1
- package/packages/server/dist/settings-static-BkVLqWOr.js +0 -1
- /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.
|
|
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;
|