@sentropic/h2a 0.85.16 → 0.85.18
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/.claude-plugin/plugin.json +29 -0
- package/.codex-plugin/plugin.json +35 -0
- package/.mcp.json +19 -0
- package/README.md +3 -0
- package/dist/bin-routing.d.ts +14 -3
- package/dist/bin-routing.d.ts.map +1 -1
- package/dist/bin-routing.js +31 -6
- package/dist/bin-routing.js.map +1 -1
- package/dist/bin.js +45 -14
- package/dist/bin.js.map +1 -1
- package/dist/cli-contract.d.ts.map +1 -1
- package/dist/cli-contract.js +41 -1
- package/dist/cli-contract.js.map +1 -1
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +146 -18
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +1 -0
- package/dist/mcp.js.map +1 -1
- package/dist/runtime/focus/serve.d.ts +42 -0
- package/dist/runtime/focus/serve.d.ts.map +1 -0
- package/dist/runtime/focus/serve.js +366 -0
- package/dist/runtime/focus/serve.js.map +1 -0
- package/dist/runtime/loop/engine/adapters.d.ts +62 -6
- package/dist/runtime/loop/engine/adapters.d.ts.map +1 -1
- package/dist/runtime/loop/engine/adapters.js +272 -36
- package/dist/runtime/loop/engine/adapters.js.map +1 -1
- package/dist/runtime/loop/engine/decision.d.ts.map +1 -1
- package/dist/runtime/loop/engine/decision.js +20 -2
- package/dist/runtime/loop/engine/decision.js.map +1 -1
- package/dist/runtime/loop/engine/execute.d.ts +13 -4
- package/dist/runtime/loop/engine/execute.d.ts.map +1 -1
- package/dist/runtime/loop/engine/execute.js +17 -7
- package/dist/runtime/loop/engine/execute.js.map +1 -1
- package/dist/runtime/loop/index.d.ts +16 -0
- package/dist/runtime/loop/index.d.ts.map +1 -1
- package/dist/runtime/loop/index.js +146 -13
- package/dist/runtime/loop/index.js.map +1 -1
- package/dist/runtime/mcp/agent-launch.d.ts +33 -0
- package/dist/runtime/mcp/agent-launch.d.ts.map +1 -0
- package/dist/runtime/mcp/agent-launch.js +250 -0
- package/dist/runtime/mcp/agent-launch.js.map +1 -0
- package/dist/runtime/mcp/handlers.d.ts +8 -0
- package/dist/runtime/mcp/handlers.d.ts.map +1 -1
- package/dist/runtime/mcp/handlers.js +34 -4
- package/dist/runtime/mcp/handlers.js.map +1 -1
- package/dist/runtime/mcp/index.d.ts +2 -1
- package/dist/runtime/mcp/index.d.ts.map +1 -1
- package/dist/runtime/mcp/index.js +2 -1
- package/dist/runtime/mcp/index.js.map +1 -1
- package/dist/runtime/mcp/server.d.ts +5 -0
- package/dist/runtime/mcp/server.d.ts.map +1 -1
- package/dist/runtime/mcp/server.js +3 -0
- package/dist/runtime/mcp/server.js.map +1 -1
- package/dist/runtime/mcp/stdio.d.ts +17 -0
- package/dist/runtime/mcp/stdio.d.ts.map +1 -1
- package/dist/runtime/mcp/stdio.js +65 -13
- package/dist/runtime/mcp/stdio.js.map +1 -1
- package/dist/runtime/mcp/tools.d.ts.map +1 -1
- package/dist/runtime/mcp/tools.js +96 -5
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/path-safety.d.ts +3 -0
- package/dist/runtime/path-safety.d.ts.map +1 -0
- package/dist/runtime/path-safety.js +12 -0
- package/dist/runtime/path-safety.js.map +1 -0
- package/dist/runtime/reporting/config.d.ts +21 -0
- package/dist/runtime/reporting/config.d.ts.map +1 -0
- package/dist/runtime/reporting/config.js +76 -0
- package/dist/runtime/reporting/config.js.map +1 -0
- package/dist/runtime/reporting/context.d.ts +27 -0
- package/dist/runtime/reporting/context.d.ts.map +1 -0
- package/dist/runtime/reporting/context.js +265 -0
- package/dist/runtime/reporting/context.js.map +1 -0
- package/dist/runtime/reporting/index.d.ts +4 -0
- package/dist/runtime/reporting/index.d.ts.map +1 -0
- package/dist/runtime/reporting/index.js +4 -0
- package/dist/runtime/reporting/index.js.map +1 -0
- package/dist/runtime/reporting/report-ai.d.ts +49 -0
- package/dist/runtime/reporting/report-ai.d.ts.map +1 -0
- package/dist/runtime/reporting/report-ai.js +325 -0
- package/dist/runtime/reporting/report-ai.js.map +1 -0
- package/focus-app/client/_app/immutable/assets/0.BdzHFb9q.css +1 -0
- package/focus-app/client/_app/immutable/assets/0.BdzHFb9q.css.br +2 -0
- package/focus-app/client/_app/immutable/assets/0.BdzHFb9q.css.gz +0 -0
- package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css +1 -0
- package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css.br +0 -0
- package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/Bs3f1UbD.js +2 -0
- package/focus-app/client/_app/immutable/chunks/Bs3f1UbD.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/Bs3f1UbD.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js +1 -0
- package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js +2 -0
- package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/Cj6wo28J.js +1 -0
- package/focus-app/client/_app/immutable/chunks/Cj6wo28J.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/Cj6wo28J.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/DEmooz0s.js +1 -0
- package/focus-app/client/_app/immutable/chunks/DEmooz0s.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/DEmooz0s.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js +2 -0
- package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/ZxFklh9T.js +1 -0
- package/focus-app/client/_app/immutable/chunks/ZxFklh9T.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/ZxFklh9T.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js +1 -0
- package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js.gz +0 -0
- package/focus-app/client/_app/immutable/chunks/wbPk3Yxo.js +81 -0
- package/focus-app/client/_app/immutable/chunks/wbPk3Yxo.js.br +0 -0
- package/focus-app/client/_app/immutable/chunks/wbPk3Yxo.js.gz +0 -0
- package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js +2 -0
- package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js.br +0 -0
- package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js.gz +0 -0
- package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js +1 -0
- package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js.br +2 -0
- package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js.gz +0 -0
- package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js +5 -0
- package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js.br +0 -0
- package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js.gz +0 -0
- package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js +1 -0
- package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js.br +0 -0
- package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js.gz +0 -0
- package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js +1 -0
- package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js.br +0 -0
- package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js.gz +0 -0
- package/focus-app/client/_app/version.json +1 -0
- package/focus-app/client/_app/version.json.br +0 -0
- package/focus-app/client/_app/version.json.gz +0 -0
- package/focus-app/env.js +70 -0
- package/focus-app/env.js.map +1 -0
- package/focus-app/h2a-focus.json +114 -0
- package/focus-app/handler.js +24 -0
- package/focus-app/handler.js.map +1 -0
- package/focus-app/index.js +147 -0
- package/focus-app/index.js.map +1 -0
- package/focus-app/server/chunks/chunks/exports.js-DUTkELZq.js +217 -0
- package/focus-app/server/chunks/chunks/exports.js-DUTkELZq.js.map +1 -0
- package/focus-app/server/chunks/chunks/false.js-B2gHlHjM.js +4 -0
- package/focus-app/server/chunks/chunks/false.js-B2gHlHjM.js.map +1 -0
- package/focus-app/server/chunks/chunks/friendly.js-D4fjovnZ.js +246 -0
- package/focus-app/server/chunks/chunks/friendly.js-D4fjovnZ.js.map +1 -0
- package/focus-app/server/chunks/chunks/index.js-Di21TltP.js +1315 -0
- package/focus-app/server/chunks/chunks/index.js-Di21TltP.js.map +1 -0
- package/focus-app/server/chunks/chunks/internal.js-33vbd70h.js +126 -0
- package/focus-app/server/chunks/chunks/internal.js-33vbd70h.js.map +1 -0
- package/focus-app/server/chunks/chunks/root.js-DO1m-gJA.js +2967 -0
- package/focus-app/server/chunks/chunks/root.js-DO1m-gJA.js.map +1 -0
- package/focus-app/server/chunks/chunks/server.js-Bf8x1V_n.js +16 -0
- package/focus-app/server/chunks/chunks/server.js-Bf8x1V_n.js.map +1 -0
- package/focus-app/server/chunks/chunks/utils.js-C_3_iViC.js +2545 -0
- package/focus-app/server/chunks/chunks/utils.js-C_3_iViC.js.map +1 -0
- package/focus-app/server/chunks/chunks/utils2.js-BQzn9ikS.js +38 -0
- package/focus-app/server/chunks/chunks/utils2.js-BQzn9ikS.js.map +1 -0
- package/focus-app/server/chunks/entries/endpoints/api/actions/launch/_server.ts.js-DUQcf9xd.js +63 -0
- package/focus-app/server/chunks/entries/endpoints/api/actions/launch/_server.ts.js-DUQcf9xd.js.map +1 -0
- package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/_server.ts.js-j0NNcOSZ.js +100 -0
- package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/_server.ts.js-j0NNcOSZ.js.map +1 -0
- package/focus-app/server/chunks/entries/fallbacks/error.svelte.js-Dj3sETSX.js +50 -0
- package/focus-app/server/chunks/entries/fallbacks/error.svelte.js-Dj3sETSX.js.map +1 -0
- package/focus-app/server/chunks/entries/pages/_layout.svelte.js-BoLsbuC2.js +1420 -0
- package/focus-app/server/chunks/entries/pages/_layout.svelte.js-BoLsbuC2.js.map +1 -0
- package/focus-app/server/chunks/entries/pages/_page.server.ts.js-ChRBj_xK.js +246 -0
- package/focus-app/server/chunks/entries/pages/_page.server.ts.js-ChRBj_xK.js.map +1 -0
- package/focus-app/server/chunks/entries/pages/_page.svelte.js-QDldMYhk.js +2725 -0
- package/focus-app/server/chunks/entries/pages/_page.svelte.js-QDldMYhk.js.map +1 -0
- package/focus-app/server/chunks/handler-Cp_5hLyY.js +1474 -0
- package/focus-app/server/chunks/handler-Cp_5hLyY.js.map +1 -0
- package/focus-app/server/chunks/index.js-CBh7Wjqp.js +4242 -0
- package/focus-app/server/chunks/index.js-CBh7Wjqp.js.map +1 -0
- package/focus-app/server/chunks/manifest.js-Cm6cC7mC.js +56 -0
- package/focus-app/server/chunks/manifest.js-Cm6cC7mC.js.map +1 -0
- package/focus-app/server/chunks/nodes/0.js-4wlmdsk8.js +9 -0
- package/focus-app/server/chunks/nodes/0.js-4wlmdsk8.js.map +1 -0
- package/focus-app/server/chunks/nodes/1.js-B-LpY-lC.js +9 -0
- package/focus-app/server/chunks/nodes/1.js-B-LpY-lC.js.map +1 -0
- package/focus-app/server/chunks/nodes/2.js-F6jp5eD9.js +19 -0
- package/focus-app/server/chunks/nodes/2.js-F6jp5eD9.js.map +1 -0
- package/focus-app/shims.js +33 -0
- package/focus-app/shims.js.map +1 -0
- package/package.json +8 -4
- package/skills/h2a/SKILL.md +7 -5
- package/skills/harness/SKILL.md +17 -0
- package/skills/harness/using-harness/SKILL.md +26 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const manifest = (() => {
|
|
2
|
+
function __memo(fn) {
|
|
3
|
+
let value;
|
|
4
|
+
return () => value ??= (value = fn());
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
return {
|
|
8
|
+
appDir: "_app",
|
|
9
|
+
appPath: "_app",
|
|
10
|
+
assets: new Set([]),
|
|
11
|
+
mimeTypes: {},
|
|
12
|
+
_: {
|
|
13
|
+
client: {start:"_app/immutable/entry/start.DlLmkUb7.js",app:"_app/immutable/entry/app.6DKouWRt.js",imports:["_app/immutable/entry/start.DlLmkUb7.js","_app/immutable/chunks/CVq_IFFr.js","_app/immutable/chunks/Bv8OL8ib.js","_app/immutable/chunks/Cj6wo28J.js","_app/immutable/entry/app.6DKouWRt.js","_app/immutable/chunks/Bv8OL8ib.js","_app/immutable/chunks/Bs3f1UbD.js","_app/immutable/chunks/ZxFklh9T.js","_app/immutable/chunks/Cj6wo28J.js","_app/immutable/chunks/_wRuVGPs.js","_app/immutable/chunks/DEmooz0s.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
|
+
nodes: [
|
|
15
|
+
__memo(() => import('./nodes/0.js-4wlmdsk8.js')),
|
|
16
|
+
__memo(() => import('./nodes/1.js-B-LpY-lC.js')),
|
|
17
|
+
__memo(() => import('./nodes/2.js-F6jp5eD9.js'))
|
|
18
|
+
],
|
|
19
|
+
remotes: {
|
|
20
|
+
|
|
21
|
+
},
|
|
22
|
+
routes: [
|
|
23
|
+
{
|
|
24
|
+
id: "/",
|
|
25
|
+
pattern: /^\/$/,
|
|
26
|
+
params: [],
|
|
27
|
+
page: { layouts: [0,], errors: [1,], leaf: 2 },
|
|
28
|
+
endpoint: null
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "/api/actions/launch",
|
|
32
|
+
pattern: /^\/api\/actions\/launch\/?$/,
|
|
33
|
+
params: [],
|
|
34
|
+
page: null,
|
|
35
|
+
endpoint: __memo(() => import('./entries/endpoints/api/actions/launch/_server.ts.js-DUQcf9xd.js'))
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "/api/decisions/inject",
|
|
39
|
+
pattern: /^\/api\/decisions\/inject\/?$/,
|
|
40
|
+
params: [],
|
|
41
|
+
page: null,
|
|
42
|
+
endpoint: __memo(() => import('./entries/endpoints/api/decisions/inject/_server.ts.js-j0NNcOSZ.js'))
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
prerendered_routes: new Set([]),
|
|
46
|
+
matchers: async () => {
|
|
47
|
+
|
|
48
|
+
return { };
|
|
49
|
+
},
|
|
50
|
+
server_assets: {}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
|
|
55
|
+
export { manifest as m };
|
|
56
|
+
//# sourceMappingURL=manifest.js-Cm6cC7mC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js-Cm6cC7mC.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DlLmkUb7.js\",app:\"_app/immutable/entry/app.6DKouWRt.js\",imports:[\"_app/immutable/entry/start.DlLmkUb7.js\",\"_app/immutable/chunks/CVq_IFFr.js\",\"_app/immutable/chunks/Bv8OL8ib.js\",\"_app/immutable/chunks/Cj6wo28J.js\",\"_app/immutable/entry/app.6DKouWRt.js\",\"_app/immutable/chunks/Bv8OL8ib.js\",\"_app/immutable/chunks/Bs3f1UbD.js\",\"_app/immutable/chunks/ZxFklh9T.js\",\"_app/immutable/chunks/Cj6wo28J.js\",\"_app/immutable/chunks/_wRuVGPs.js\",\"_app/immutable/chunks/DEmooz0s.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/actions/launch\",\n\t\t\t\tpattern: /^\\/api\\/actions\\/launch\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/actions/launch/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/decisions/inject\",\n\t\t\t\tpattern: /^\\/api\\/decisions\\/inject\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/decisions/inject/_server.ts.js'))\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACpB,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACzjB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,0BAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,qBAAqB;AAC7B,IAAI,OAAO,EAAE,6BAA6B;AAC1C,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,kEAAsD,CAAC;AACzF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,uBAAuB;AAC/B,IAAI,OAAO,EAAE,+BAA+B;AAC5C,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,oEAAwD,CAAC;AAC3F;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 0;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-BoLsbuC2.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/0.CuSOF0Of.js","_app/immutable/chunks/ZxFklh9T.js","_app/immutable/chunks/Bv8OL8ib.js","_app/immutable/chunks/DQIRXgdC.js","_app/immutable/chunks/DEmooz0s.js"];
|
|
5
|
+
const stylesheets = ["_app/immutable/assets/0.BdzHFb9q.css"];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=0.js-4wlmdsk8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"0.js-4wlmdsk8.js","sources":["../../../../.svelte-kit/output/server/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.CuSOF0Of.js\",\"_app/immutable/chunks/ZxFklh9T.js\",\"_app/immutable/chunks/Bv8OL8ib.js\",\"_app/immutable/chunks/DQIRXgdC.js\",\"_app/immutable/chunks/DEmooz0s.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.BdzHFb9q.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,gDAAoC,CAAC,EAAE;AAClG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const index = 1;
|
|
2
|
+
let component_cache;
|
|
3
|
+
const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-Dj3sETSX.js')).default;
|
|
4
|
+
const imports = ["_app/immutable/nodes/1.D39jdnqm.js","_app/immutable/chunks/ZxFklh9T.js","_app/immutable/chunks/Bv8OL8ib.js","_app/immutable/chunks/Bs3f1UbD.js","_app/immutable/chunks/CVq_IFFr.js","_app/immutable/chunks/Cj6wo28J.js"];
|
|
5
|
+
const stylesheets = [];
|
|
6
|
+
const fonts = [];
|
|
7
|
+
|
|
8
|
+
export { component, fonts, imports, index, stylesheets };
|
|
9
|
+
//# sourceMappingURL=1.js-B-LpY-lC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1.js-B-LpY-lC.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.D39jdnqm.js\",\"_app/immutable/chunks/ZxFklh9T.js\",\"_app/immutable/chunks/Bv8OL8ib.js\",\"_app/immutable/chunks/Bs3f1UbD.js\",\"_app/immutable/chunks/CVq_IFFr.js\",\"_app/immutable/chunks/Cj6wo28J.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { _ as server } from '../entries/pages/_page.server.ts.js-ChRBj_xK.js';
|
|
2
|
+
import '../chunks/friendly.js-D4fjovnZ.js';
|
|
3
|
+
import 'node:child_process';
|
|
4
|
+
import 'node:fs';
|
|
5
|
+
import 'node:path';
|
|
6
|
+
import 'node:url';
|
|
7
|
+
import 'node:crypto';
|
|
8
|
+
import 'node:os';
|
|
9
|
+
|
|
10
|
+
const index = 2;
|
|
11
|
+
let component_cache;
|
|
12
|
+
const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-QDldMYhk.js')).default;
|
|
13
|
+
const server_id = "src/routes/+page.server.ts";
|
|
14
|
+
const imports = ["_app/immutable/nodes/2.CnU8ifRl.js","_app/immutable/chunks/ZxFklh9T.js","_app/immutable/chunks/Bv8OL8ib.js","_app/immutable/chunks/Bs3f1UbD.js","_app/immutable/chunks/_wRuVGPs.js","_app/immutable/chunks/DEmooz0s.js","_app/immutable/chunks/DQIRXgdC.js"];
|
|
15
|
+
const stylesheets = ["_app/immutable/assets/2.Ddxq02y4.css"];
|
|
16
|
+
const fonts = [];
|
|
17
|
+
|
|
18
|
+
export { component, fonts, imports, index, server_id, stylesheets };
|
|
19
|
+
//# sourceMappingURL=2.js-F6jp5eD9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2.js-F6jp5eD9.js","sources":["../../../../.svelte-kit/output/server/nodes/2.js"],"sourcesContent":["import * as server from '../entries/pages/_page.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.CnU8ifRl.js\",\"_app/immutable/chunks/ZxFklh9T.js\",\"_app/immutable/chunks/Bv8OL8ib.js\",\"_app/immutable/chunks/Bs3f1UbD.js\",\"_app/immutable/chunks/_wRuVGPs.js\",\"_app/immutable/chunks/DEmooz0s.js\",\"_app/immutable/chunks/DQIRXgdC.js\"];\nexport const stylesheets = [\"_app/immutable/assets/2.Ddxq02y4.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8CAAkC,CAAC,EAAE;AAEhG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import buffer from 'node:buffer';
|
|
2
|
+
import { webcrypto } from 'node:crypto';
|
|
3
|
+
|
|
4
|
+
// `buffer.File` was added in Node 18.13.0 while the `File` global was added in Node 20.0.0
|
|
5
|
+
const File = /** @type {import('node:buffer') & { File?: File}} */ (buffer).File;
|
|
6
|
+
|
|
7
|
+
/** @type {Record<string, any>} */
|
|
8
|
+
const globals = {
|
|
9
|
+
crypto: webcrypto,
|
|
10
|
+
File
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// exported for dev/preview and node environments
|
|
14
|
+
/**
|
|
15
|
+
* Make various web APIs available as globals:
|
|
16
|
+
* - `crypto`
|
|
17
|
+
* - `File`
|
|
18
|
+
*/
|
|
19
|
+
function installPolyfills() {
|
|
20
|
+
for (const name in globals) {
|
|
21
|
+
if (name in globalThis) continue;
|
|
22
|
+
|
|
23
|
+
Object.defineProperty(globalThis, name, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: globals[name]
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
installPolyfills();
|
|
33
|
+
//# sourceMappingURL=shims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shims.js","sources":["../node_modules/@sveltejs/kit/src/exports/node/polyfills.js","../.svelte-kit/adapter-node/entries/shims.js"],"sourcesContent":["import buffer from 'node:buffer';\nimport { webcrypto as crypto } from 'node:crypto';\n\n// `buffer.File` was added in Node 18.13.0 while the `File` global was added in Node 20.0.0\nconst File = /** @type {import('node:buffer') & { File?: File}} */ (buffer).File;\n\n/** @type {Record<string, any>} */\nconst globals = {\n\tcrypto,\n\tFile\n};\n\n// exported for dev/preview and node environments\n/**\n * Make various web APIs available as globals:\n * - `crypto`\n * - `File`\n */\nexport function installPolyfills() {\n\tfor (const name in globals) {\n\t\tif (name in globalThis) continue;\n\n\t\tObject.defineProperty(globalThis, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true,\n\t\t\tvalue: globals[name]\n\t\t});\n\t}\n}\n","import { installPolyfills } from '@sveltejs/kit/node/polyfills';\n\ninstallPolyfills();\n"],"names":["crypto"],"mappings":";;;AAGA;AACA,MAAM,IAAI,yDAAyD,CAAC,MAAM,EAAE,IAAI;;AAEhF;AACA,MAAM,OAAO,GAAG;AAChB,SAACA,SAAM;AACP,CAAC;AACD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG;AACnC,CAAC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AAC7B,EAAE,IAAI,IAAI,IAAI,UAAU,EAAE;;AAE1B,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE;AAC1C,GAAG,UAAU,EAAE,IAAI;AACnB,GAAG,YAAY,EAAE,IAAI;AACrB,GAAG,QAAQ,EAAE,IAAI;AACjB,GAAG,KAAK,EAAE,OAAO,CAAC,IAAI;AACtB,GAAG,CAAC;AACJ,CAAC;AACD;;AC3BA,gBAAgB,EAAE","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentropic/h2a",
|
|
3
|
-
"version": "0.85.
|
|
3
|
+
"version": "0.85.18",
|
|
4
4
|
"description": "h2a — the unified CLI + core for human-to-agent coordination.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,10 +29,14 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
|
+
".claude-plugin",
|
|
33
|
+
".codex-plugin",
|
|
34
|
+
".mcp.json",
|
|
32
35
|
"dist",
|
|
33
36
|
"fixtures",
|
|
34
37
|
"skills",
|
|
35
|
-
"schema"
|
|
38
|
+
"schema",
|
|
39
|
+
"focus-app"
|
|
36
40
|
],
|
|
37
41
|
"publishConfig": {
|
|
38
42
|
"access": "public"
|
|
@@ -41,13 +45,13 @@
|
|
|
41
45
|
"h2a": "dist/bin.js"
|
|
42
46
|
},
|
|
43
47
|
"scripts": {
|
|
44
|
-
"prepack": "chmod +x dist/bin.js"
|
|
48
|
+
"prepack": "node ../../scripts/check-focus-app.mjs && chmod +x dist/bin.js"
|
|
45
49
|
},
|
|
46
50
|
"dependencies": {
|
|
47
51
|
"@hono/mcp": "^0.3.0",
|
|
48
52
|
"@hono/node-server": "^2.0.4",
|
|
49
53
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
50
|
-
"@sentropic/track": "^0.85.
|
|
54
|
+
"@sentropic/track": "^0.85.18",
|
|
51
55
|
"hono": "^4.12.23"
|
|
52
56
|
},
|
|
53
57
|
"peerDependencies": {
|
package/skills/h2a/SKILL.md
CHANGED
|
@@ -228,9 +228,9 @@ Drive an objective loop: a durable, shared relay state where several CLI agents
|
|
|
228
228
|
|
|
229
229
|
**Supported verbs:**
|
|
230
230
|
|
|
231
|
-
- `/h2a loop create --goal "<goal>" [--name <name>] [--id <loop-id>] [--agent <host:role:local>] [--ref <ref>]` — create the loop. CLI: `h2a loop create`. MCP: `h2a_loop_create`.
|
|
232
|
-
- `/h2a loop join <loop-id> --instance <self> [--agent-id <id>] [--role <role>] [--required=false]` — join an existing loop or fill a predeclared agent slot. CLI: `h2a loop join`. MCP: `h2a_loop_join`.
|
|
233
|
-
- `/h2a loop report <loop-id> --agent-id <id>
|
|
231
|
+
- `/h2a loop create --goal "<goal>" [--name <name>] [--id <loop-id>] [--agent <host:role:local>] [--ref <ref>]` — create the loop. MCP create requires an explicit initial `instance`, unless `allowEmpty:true` explicitly requests a staged empty loop. CLI: `h2a loop create`. MCP: `h2a_loop_create`.
|
|
232
|
+
- `/h2a loop join <loop-id> --instance <self> [--agent-id <id>] [--role <role>] [--required=false]` — join an existing loop or fill a predeclared agent slot. A strict Claude/Codex relaunch spec may be supplied as the MCP `launch` object, or to the CLI only through `--launch-stdin`; never place its prompt in argv. CLI: `h2a loop join`. MCP: `h2a_loop_join`.
|
|
233
|
+
- `/h2a loop report <loop-id> --agent-id <id> [--note "..."]` — append an agent progress report. A legacy/staged empty loop may recover with explicit `autoJoin:true` + `instance`; this shortcut is refused once any participant exists. CLI: `h2a loop report`. MCP: `h2a_loop_report`.
|
|
234
234
|
- `/h2a loop done <loop-id> --ref <ref> [--agent-id <id>] [--note "..."]` — mark one loop reference done. CLI: `h2a loop done`. MCP: `h2a_loop_done`.
|
|
235
235
|
- `/h2a loop stop <loop-id> [--reason "..."]` — stop the loop; later `tick/run --execute` must not perform close actions. CLI: `h2a loop stop`. MCP: `h2a_loop_stop`.
|
|
236
236
|
- `/h2a loop list` / `/h2a loop status <loop-id>` — read-only projections. CLI or MCP: `h2a_loop_list`, `h2a_loop_status`.
|
|
@@ -241,8 +241,10 @@ Drive an objective loop: a durable, shared relay state where several CLI agents
|
|
|
241
241
|
1. Prefer MCP tools when the host exposes them; otherwise call the CLI with `--root <root>`.
|
|
242
242
|
2. Always use the current resolved perennial `instance` from `/h2a connect`; do not invent agent ids except as local slot ids (`agent-1`, `reviewer`, etc.).
|
|
243
243
|
3. If the user asks for a Codex/Claude relay, create the loop with predeclared `--agent` slots, ask each live peer to `join`, then use `report`/`done` to converge.
|
|
244
|
-
4. Treat `
|
|
245
|
-
5.
|
|
244
|
+
4. Treat an empty-loop `stalled` plan as recoverable: call `h2a_loop_join`, or use explicit empty-only `autoJoin:true` on the first report. Never infer the caller identity.
|
|
245
|
+
5. A missing/dead agent is auto-launched only when its persisted `launch` spec is complete. `gateway:"required"` is Claude-only (Codex `auto` is effective `direct`). Wake and launch share one durable cooldown/maxRelaunches budget; human deferrals consume neither.
|
|
246
|
+
6. Treat `stopped` as terminal. Do not restart or close a stopped loop unless the user explicitly creates a new loop.
|
|
247
|
+
7. Print the loop id and the next concrete command/tool call for the peer.
|
|
246
248
|
|
|
247
249
|
### `/h2a model "<situation>"`
|
|
248
250
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness
|
|
3
|
+
description: Route repository work through the sentropic harness method. Use in a sentropic repo for branch scope, brainstorming, planning, debugging, testing, review, or adopting harness conventions in a new repo.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Harness
|
|
7
|
+
|
|
8
|
+
Read `using-harness/SKILL.md` first in a sentropic repository. Then read only the workflow needed for the current task:
|
|
9
|
+
|
|
10
|
+
- `brainstorm/SKILL.md` before creative or design work.
|
|
11
|
+
- `plan/SKILL.md` to turn accepted decisions into an executable `BRANCH.md`.
|
|
12
|
+
- `debug/SKILL.md` before diagnosing a defect or unexpected behavior.
|
|
13
|
+
- `test/SKILL.md` when adding or changing tests.
|
|
14
|
+
- `review/SKILL.md` before completion or merge.
|
|
15
|
+
- `adopt/SKILL.md` when bringing the method to a new repository.
|
|
16
|
+
|
|
17
|
+
Follow the selected workflow completely. Repository-local `AGENTS.md` and explicit user instructions take precedence.
|
|
@@ -44,6 +44,32 @@ repo-local `.remote/jobs/<id>/wt` workspace.
|
|
|
44
44
|
A recorder verb does NOT do the thinking — it scaffolds + records, and the `harness/<verb>` skill carries
|
|
45
45
|
the reasoning. Run the verb to open the act, then follow its skill.
|
|
46
46
|
|
|
47
|
+
|
|
48
|
+
## Strict scope / minimal diff
|
|
49
|
+
|
|
50
|
+
Solve only the explicit request and directly blocking defect. Before editing, identify the smallest
|
|
51
|
+
necessary file/line set. Preserve existing work: do not rewrite, reformat, move, rename, delete, refactor,
|
|
52
|
+
add dependencies, add abstractions, or clean up opportunistically unless required by the task. Prefer a
|
|
53
|
+
local compatible fix over a broader redesign. If a useful improvement is outside scope, mention it as an
|
|
54
|
+
optional follow-up instead of implementing it. Before finishing, check every hunk: if it does not directly
|
|
55
|
+
serve the objective, remove it.
|
|
56
|
+
|
|
57
|
+
### No-dead-end diagnosis
|
|
58
|
+
|
|
59
|
+
Treat a gap, blocker, or missing implementation as actionable only when evidence shows that it prevents
|
|
60
|
+
the explicit objective or a required verification. Do not end with that diagnosis alone. If the smallest
|
|
61
|
+
directly blocking change is both authorized by the request and within the agreed scope, resolve it. A
|
|
62
|
+
diagnosis-only request remains diagnosis-only. Otherwise provide one evidence-backed handoff:
|
|
63
|
+
responsible role (or `owner: to be assigned`), bounded scope, observable acceptance criterion, and
|
|
64
|
+
proportionate verification.
|
|
65
|
+
|
|
66
|
+
For an evidenced, non-blocking observation outside the scope, do not implement it or create work by
|
|
67
|
+
default. Mention it as an optional follow-up only when useful to the user, and cite the evidence. Record a
|
|
68
|
+
follow-up only when the request explicitly authorizes creating or updating tracked work, using the task's
|
|
69
|
+
established tracking flow; otherwise recommend it without recording it. Never create, assign, or
|
|
70
|
+
duplicate follow-up work from speculation. A handoff closes the diagnosed blocking item; it does not
|
|
71
|
+
satisfy or defer any remaining explicit objective.
|
|
72
|
+
|
|
47
73
|
## Discipline first
|
|
48
74
|
|
|
49
75
|
Process skills (`harness/brainstorm`, `harness/debug`) decide HOW to approach the task — invoke them
|