@roackb2/heddle 0.0.13 → 0.0.14

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 (67) hide show
  1. package/README.md +283 -217
  2. package/dist/src/cli/daemon.d.ts +14 -0
  3. package/dist/src/cli/daemon.d.ts.map +1 -0
  4. package/dist/src/cli/daemon.js +61 -0
  5. package/dist/src/cli/daemon.js.map +1 -0
  6. package/dist/src/cli/main.js +6 -0
  7. package/dist/src/cli/main.js.map +1 -1
  8. package/dist/src/server/app.d.ts +6 -0
  9. package/dist/src/server/app.d.ts.map +1 -0
  10. package/dist/src/server/app.js +36 -0
  11. package/dist/src/server/app.js.map +1 -0
  12. package/dist/src/server/dev.d.ts +2 -0
  13. package/dist/src/server/dev.d.ts.map +1 -0
  14. package/dist/src/server/dev.js +39 -0
  15. package/dist/src/server/dev.js.map +1 -0
  16. package/dist/src/server/features/control-plane/router.d.ts +37 -0
  17. package/dist/src/server/features/control-plane/router.d.ts.map +1 -0
  18. package/dist/src/server/features/control-plane/router.js +34 -0
  19. package/dist/src/server/features/control-plane/router.js.map +1 -0
  20. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts +4 -0
  21. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -0
  22. package/dist/src/server/features/control-plane/services/chat-sessions.js +63 -0
  23. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -0
  24. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts +4 -0
  25. package/dist/src/server/features/control-plane/services/control-plane-state.d.ts.map +1 -0
  26. package/dist/src/server/features/control-plane/services/control-plane-state.js +19 -0
  27. package/dist/src/server/features/control-plane/services/control-plane-state.js.map +1 -0
  28. package/dist/src/server/features/control-plane/services/heartbeat.d.ts +7 -0
  29. package/dist/src/server/features/control-plane/services/heartbeat.d.ts.map +1 -0
  30. package/dist/src/server/features/control-plane/services/heartbeat.js +12 -0
  31. package/dist/src/server/features/control-plane/services/heartbeat.js.map +1 -0
  32. package/dist/src/server/features/control-plane/types.d.ts +31 -0
  33. package/dist/src/server/features/control-plane/types.d.ts.map +1 -0
  34. package/dist/src/server/features/control-plane/types.js +2 -0
  35. package/dist/src/server/features/control-plane/types.js.map +1 -0
  36. package/dist/src/server/index.d.ts +8 -0
  37. package/dist/src/server/index.d.ts.map +1 -0
  38. package/dist/src/server/index.js +42 -0
  39. package/dist/src/server/index.js.map +1 -0
  40. package/dist/src/server/logger.d.ts +8 -0
  41. package/dist/src/server/logger.d.ts.map +1 -0
  42. package/dist/src/server/logger.js +11 -0
  43. package/dist/src/server/logger.js.map +1 -0
  44. package/dist/src/server/middleware/request-logging.d.ts +4 -0
  45. package/dist/src/server/middleware/request-logging.d.ts.map +1 -0
  46. package/dist/src/server/middleware/request-logging.js +15 -0
  47. package/dist/src/server/middleware/request-logging.js.map +1 -0
  48. package/dist/src/server/router.d.ts +55 -0
  49. package/dist/src/server/router.d.ts.map +1 -0
  50. package/dist/src/server/router.js +14 -0
  51. package/dist/src/server/router.js.map +1 -0
  52. package/dist/src/server/static.d.ts +4 -0
  53. package/dist/src/server/static.d.ts.map +1 -0
  54. package/dist/src/server/static.js +25 -0
  55. package/dist/src/server/static.js.map +1 -0
  56. package/dist/src/server/trpc.d.ts +9 -0
  57. package/dist/src/server/trpc.d.ts.map +1 -0
  58. package/dist/src/server/trpc.js +5 -0
  59. package/dist/src/server/trpc.js.map +1 -0
  60. package/dist/src/server/types.d.ts +17 -0
  61. package/dist/src/server/types.d.ts.map +1 -0
  62. package/dist/src/server/types.js +2 -0
  63. package/dist/src/server/types.js.map +1 -0
  64. package/dist/src/web/assets/index-DmYQXJQf.css +1 -0
  65. package/dist/src/web/assets/index-xFJTOaTY.js +9 -0
  66. package/dist/src/web/index.html +13 -0
  67. package/package.json +18 -3
@@ -0,0 +1,4 @@
1
+ import express from 'express';
2
+ export declare function assertWebAssetsBuilt(assetsDir: string): void;
3
+ export declare function installWebStaticRoutes(app: express.Express, assetsDir: string): void;
4
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../src/server/static.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,QAKrD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,QAc7E"}
@@ -0,0 +1,25 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import express from 'express';
4
+ export function assertWebAssetsBuilt(assetsDir) {
5
+ const indexPath = join(assetsDir, 'index.html');
6
+ if (!existsSync(indexPath)) {
7
+ throw new Error(`Web assets not found at ${assetsDir}. Run yarn build before starting heddle daemon.`);
8
+ }
9
+ }
10
+ export function installWebStaticRoutes(app, assetsDir) {
11
+ const indexPath = join(assetsDir, 'index.html');
12
+ app.use(express.static(assetsDir, {
13
+ immutable: true,
14
+ index: false,
15
+ maxAge: '1y',
16
+ }));
17
+ app.get(/.*/, (_request, response) => {
18
+ response.sendFile(indexPath, {
19
+ headers: {
20
+ 'Cache-Control': 'no-store',
21
+ },
22
+ });
23
+ });
24
+ }
25
+ //# sourceMappingURL=static.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../../src/server/static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,iDAAiD,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAoB,EAAE,SAAiB;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE;QAChC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACnC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;aAC5B;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { HeddleServerContext } from './types.js';
2
+ export declare const router: import("@trpc/server").TRPCRouterBuilder<{
3
+ ctx: HeddleServerContext;
4
+ meta: object;
5
+ errorShape: import("@trpc/server").TRPCDefaultErrorShape;
6
+ transformer: false;
7
+ }>;
8
+ export declare const procedure: import("@trpc/server").TRPCProcedureBuilder<HeddleServerContext, object, object, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
9
+ //# sourceMappingURL=trpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.d.ts","sourceRoot":"","sources":["../../../src/server/trpc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,eAAO,MAAM,MAAM;;;;;EAAW,CAAC;AAC/B,eAAO,MAAM,SAAS,yPAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { initTRPC } from '@trpc/server';
2
+ const t = initTRPC.context().create();
3
+ export const router = t.router;
4
+ export const procedure = t.procedure;
5
+ //# sourceMappingURL=trpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/server/trpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAuB,CAAC,MAAM,EAAE,CAAC;AAE3D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Logger } from 'pino';
2
+ export type HeddleServerOptions = {
3
+ workspaceRoot: string;
4
+ stateRoot: string;
5
+ assetsDir?: string;
6
+ logger?: Logger;
7
+ };
8
+ export type HeddleServerListenOptions = HeddleServerOptions & {
9
+ host: string;
10
+ port: number;
11
+ };
12
+ export type HeddleServerContext = {
13
+ workspaceRoot: string;
14
+ stateRoot: string;
15
+ logger: Logger;
16
+ };
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ :root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#10131c;--panel:#191f2de0;--text:#eef2ff;--muted:#98a2b3;--line:#98a2b333;--accent:#88d8c0;--warn:#f4c27a;--bad:#ff8f8f;--good:#83e29e}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 0%, #88d8c02e, transparent 28rem), radial-gradient(circle at 86% 8%, #f4c27a1a, transparent 24rem), linear-gradient(145deg, #0d111a 0%, var(--bg) 56%, #151827 100%);min-height:100vh;color:var(--text);margin:0;font:15px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}button{font:inherit}.shell{width:min(1180px,100vw - 32px);margin:0 auto;padding:30px 0 48px}.hero{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:800}h1{letter-spacing:-.065em;max-width:820px;margin:0;font-size:clamp(34px,6vw,64px);line-height:.94}h2,h3,p{margin-top:0}.lede{max-width:680px;color:var(--muted);margin:16px 0 0;font-size:17px}.status{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);max-width:min(440px,100%);color:var(--muted);background:#191f2dc7;border-radius:999px;padding:9px 13px;overflow:hidden}.status.bad{color:var(--bad);border-color:#ff8f8f66}.tabs{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.tabs button{border:1px solid var(--line);color:var(--text);background:var(--panel);cursor:pointer;border-radius:999px;padding:9px 14px}.tabs button.active{border-color:var(--accent);color:#07110e;background:var(--accent)}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.wide{grid-column:span 2}.panel{border:1px solid var(--line);background:var(--panel);border-radius:24px;min-width:0;padding:18px;box-shadow:0 24px 80px #00000038}.panel h2{letter-spacing:-.02em;margin-bottom:12px;font-size:18px}.strong{overflow-wrap:anywhere;margin-bottom:6px;font-weight:800}.muted{color:var(--muted);font-size:13px}.metric{letter-spacing:-.05em;margin-bottom:4px;font-size:44px;font-weight:850;line-height:1}.item{border-top:1px solid #98a2b324;padding:14px 0}.item:first-child{border-top:0;padding-top:0}.item:last-child{padding-bottom:0}.item h3{letter-spacing:-.015em;margin-bottom:2px;font-size:16px}.pills{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.pill{color:var(--muted);border:1px solid #98a2b33d;border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;display:inline-flex}.pill.good{color:var(--good);border-color:#83e29e5c}.pill.warn{color:var(--warn);border-color:#f4c27a66}.pill.bad{color:var(--bad);border-color:#ff8f8f66}.summary{color:#d6dded;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.empty{color:var(--muted)}pre{color:#d6dded;background:#0b0f18;border-radius:16px;margin:0;padding:14px;overflow:auto}@media (width<=840px){.shell{width:min(100vw - 22px,680px);padding-top:18px}.hero{display:block}.status{margin-top:14px;display:inline-flex}.grid{grid-template-columns:1fr}.wide{grid-column:auto}}