stable-harness 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +32 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +2 -0
  4. package/dist/compat/agent-harness.d.ts +24 -0
  5. package/dist/compat/agent-harness.js +1 -0
  6. package/dist/index.d.ts +13 -0
  7. package/dist/index.js +1 -0
  8. package/dist/runtime/compat/agent-harness-compat-runner.d.ts +2 -0
  9. package/dist/runtime/compat/agent-harness-compat-runner.js +1 -0
  10. package/dist/runtime/compat/json.d.ts +3 -0
  11. package/dist/runtime/compat/json.js +1 -0
  12. package/dist/runtime/compat/presentation.d.ts +1 -0
  13. package/dist/runtime/compat/presentation.js +1 -0
  14. package/dist/runtime/compat/prompts.d.ts +24 -0
  15. package/dist/runtime/compat/prompts.js +1 -0
  16. package/dist/runtime/compat/tool-registry.d.ts +3 -0
  17. package/dist/runtime/compat/tool-registry.js +1 -0
  18. package/dist/runtime/compat/types.d.ts +38 -0
  19. package/dist/runtime/compat/types.js +1 -0
  20. package/dist/runtime/model/ollama.d.ts +2 -0
  21. package/dist/runtime/model/ollama.js +1 -0
  22. package/dist/runtime/skills/skill-metadata.d.ts +7 -0
  23. package/dist/runtime/skills/skill-metadata.js +1 -0
  24. package/dist/runtime/workspace/types.d.ts +38 -0
  25. package/dist/runtime/workspace/types.js +1 -0
  26. package/dist/tools.d.ts +12 -0
  27. package/dist/tools.js +1 -0
  28. package/dist/workspace/compile.d.ts +2 -0
  29. package/dist/workspace/compile.js +1 -0
  30. package/package.json +94 -0
  31. package/packages/adapter-deepagents/dist/src/adapter.d.ts +8 -0
  32. package/packages/adapter-deepagents/dist/src/adapter.js +1 -0
  33. package/packages/adapter-deepagents/dist/src/builtin-tool-policy.d.ts +18 -0
  34. package/packages/adapter-deepagents/dist/src/builtin-tool-policy.js +1 -0
  35. package/packages/adapter-deepagents/dist/src/index.d.ts +2 -0
  36. package/packages/adapter-deepagents/dist/src/index.js +1 -0
  37. package/packages/adapter-deepagents/dist/src/messages.d.ts +9 -0
  38. package/packages/adapter-deepagents/dist/src/messages.js +1 -0
  39. package/packages/adapter-deepagents/dist/src/retry-policy.d.ts +2 -0
  40. package/packages/adapter-deepagents/dist/src/retry-policy.js +1 -0
  41. package/packages/adapter-deepagents/dist/src/stream-events.d.ts +2 -0
  42. package/packages/adapter-deepagents/dist/src/stream-events.js +1 -0
  43. package/packages/adapter-deepagents/dist/src/types.d.ts +6 -0
  44. package/packages/adapter-deepagents/dist/src/types.js +1 -0
  45. package/packages/adapter-deepagents/package.json +26 -0
  46. package/packages/cli/dist/src/cli.d.ts +2 -0
  47. package/packages/cli/dist/src/cli.js +2 -0
  48. package/packages/cli/dist/src/index.d.ts +1 -0
  49. package/packages/cli/dist/src/index.js +1 -0
  50. package/packages/cli/package.json +22 -0
  51. package/packages/core/dist/artifacts.d.ts +8 -0
  52. package/packages/core/dist/artifacts.js +1 -0
  53. package/packages/core/dist/execution-contract.d.ts +8 -0
  54. package/packages/core/dist/execution-contract.js +1 -0
  55. package/packages/core/dist/index.d.ts +9 -0
  56. package/packages/core/dist/index.js +1 -0
  57. package/packages/core/dist/inspection.d.ts +4 -0
  58. package/packages/core/dist/inspection.js +1 -0
  59. package/packages/core/dist/memory-plugins.d.ts +68 -0
  60. package/packages/core/dist/memory-plugins.js +1 -0
  61. package/packages/core/dist/queue.d.ts +2 -0
  62. package/packages/core/dist/queue.js +1 -0
  63. package/packages/core/dist/runtime.d.ts +12 -0
  64. package/packages/core/dist/runtime.js +1 -0
  65. package/packages/core/dist/stores.d.ts +3 -0
  66. package/packages/core/dist/stores.js +1 -0
  67. package/packages/core/dist/trace.d.ts +15 -0
  68. package/packages/core/dist/trace.js +1 -0
  69. package/packages/core/dist/types.d.ts +526 -0
  70. package/packages/core/dist/types.js +1 -0
  71. package/packages/core/package.json +17 -0
  72. package/packages/evaluation/dist/src/index.d.ts +2 -0
  73. package/packages/evaluation/dist/src/index.js +1 -0
  74. package/packages/evaluation/dist/src/trace.d.ts +16 -0
  75. package/packages/evaluation/dist/src/trace.js +1 -0
  76. package/packages/evaluation/dist/src/types.d.ts +11 -0
  77. package/packages/evaluation/dist/src/types.js +1 -0
  78. package/packages/evaluation/package.json +15 -0
  79. package/packages/governance/dist/src/approval-queue.d.ts +2 -0
  80. package/packages/governance/dist/src/approval-queue.js +1 -0
  81. package/packages/governance/dist/src/index.d.ts +4 -0
  82. package/packages/governance/dist/src/index.js +1 -0
  83. package/packages/governance/dist/src/policy-engine.d.ts +2 -0
  84. package/packages/governance/dist/src/policy-engine.js +1 -0
  85. package/packages/governance/dist/src/skill-candidates.d.ts +2 -0
  86. package/packages/governance/dist/src/skill-candidates.js +1 -0
  87. package/packages/governance/dist/src/types.d.ts +100 -0
  88. package/packages/governance/dist/src/types.js +1 -0
  89. package/packages/governance/package.json +12 -0
  90. package/packages/memory/dist/src/index.d.ts +9 -0
  91. package/packages/memory/dist/src/index.js +1 -0
  92. package/packages/memory/dist/src/langmem-service.d.ts +8 -0
  93. package/packages/memory/dist/src/langmem-service.js +1 -0
  94. package/packages/memory/dist/src/maintenance.d.ts +2 -0
  95. package/packages/memory/dist/src/maintenance.js +1 -0
  96. package/packages/memory/dist/src/persistence.d.ts +4 -0
  97. package/packages/memory/dist/src/persistence.js +1 -0
  98. package/packages/memory/dist/src/policy.d.ts +2 -0
  99. package/packages/memory/dist/src/policy.js +1 -0
  100. package/packages/memory/dist/src/provider.d.ts +50 -0
  101. package/packages/memory/dist/src/provider.js +1 -0
  102. package/packages/memory/dist/src/store.d.ts +5 -0
  103. package/packages/memory/dist/src/store.js +1 -0
  104. package/packages/memory/dist/src/types.d.ts +138 -0
  105. package/packages/memory/dist/src/types.js +1 -0
  106. package/packages/memory/package.json +12 -0
  107. package/packages/protocols/dist/src/http-server.d.ts +3 -0
  108. package/packages/protocols/dist/src/http-server.js +1 -0
  109. package/packages/protocols/dist/src/in-process-client.d.ts +2 -0
  110. package/packages/protocols/dist/src/in-process-client.js +1 -0
  111. package/packages/protocols/dist/src/index.d.ts +4 -0
  112. package/packages/protocols/dist/src/index.js +1 -0
  113. package/packages/protocols/dist/src/openai-compatible.d.ts +9 -0
  114. package/packages/protocols/dist/src/openai-compatible.js +1 -0
  115. package/packages/protocols/package.json +15 -0
  116. package/packages/tool-gateway/dist/src/argument-guard.d.ts +32 -0
  117. package/packages/tool-gateway/dist/src/argument-guard.js +1 -0
  118. package/packages/tool-gateway/dist/src/in-memory.d.ts +4 -0
  119. package/packages/tool-gateway/dist/src/in-memory.js +1 -0
  120. package/packages/tool-gateway/dist/src/index.d.ts +7 -0
  121. package/packages/tool-gateway/dist/src/index.js +1 -0
  122. package/packages/tool-gateway/dist/src/module-loader.d.ts +13 -0
  123. package/packages/tool-gateway/dist/src/module-loader.js +1 -0
  124. package/packages/tool-gateway/dist/src/types.d.ts +65 -0
  125. package/packages/tool-gateway/dist/src/types.js +1 -0
  126. package/packages/tool-gateway/package.json +15 -0
  127. package/packages/workspace-yaml/dist/index.d.ts +1 -0
  128. package/packages/workspace-yaml/dist/index.js +1 -0
  129. package/packages/workspace-yaml/dist/loader.d.ts +2 -0
  130. package/packages/workspace-yaml/dist/loader.js +1 -0
  131. package/packages/workspace-yaml/package.json +16 -0
@@ -0,0 +1 @@
1
+ export * from "./loader.js";
@@ -0,0 +1 @@
1
+ export*from"./loader.js";
@@ -0,0 +1,2 @@
1
+ import type { CompiledWorkspace } from "@stable-harness/core";
2
+ export declare function loadWorkspaceFromYaml(workspaceRoot: string): Promise<CompiledWorkspace>;
@@ -0,0 +1 @@
1
+ import{readdir as e,readFile as t}from"node:fs/promises";import o from"node:path";import{parseAllDocuments as r}from"yaml";async function n(t){const r=await e(t,{withFileTypes:!0});return(await Promise.all(r.map(async e=>{const r=o.join(t,e.name);return e.isDirectory()?n(r):e.isFile()&&/\.ya?ml$/iu.test(e.name)?[r]:[]}))).flat().sort()}function i(e,t){if("object"!=typeof e||null===e||Array.isArray(e))throw new Error(`${t} must be an object`);return e}function s(e,t){const o=e.metadata?.name;if("string"==typeof o&&o.trim())return o.trim();if(t)return t;throw new Error(`Document kind ${String(e.kind)} requires metadata.name`)}function a(e){const t=e.metadata?.description;return"string"==typeof t&&t.trim()?t.trim():void 0}function c(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.trim().length>0):[]}function p(e){if("string"!=typeof e)return e;const t=e.match(/^\$\{env:([A-Za-z_][A-Za-z0-9_]*)(?::-(.*))?\}$/u);return t?process.env[t[1]]??t[2]??"":e}function m(e){const t=i(e.spec,"Runtime.spec"),o=i(t.routing??{},"Runtime.spec.routing");return{defaultAgentId:"string"==typeof o.defaultAgentId&&o.defaultAgentId.trim()?o.defaultAgentId.trim():"orchestra",...b(t.workspaceId)?{workspaceId:b(t.workspaceId)}:{},...b(t.profile)?{profile:b(t.profile)}:{},..."object"==typeof t.approvals&&t.approvals?{approvals:t.approvals}:{},..."object"==typeof t.recovery&&t.recovery?{recovery:t.recovery}:{},..."object"==typeof t.retry&&t.retry?{retry:t.retry}:{},..."object"==typeof t.memory&&t.memory?{memory:t.memory}:{},..."object"==typeof t.protocols&&t.protocols?{protocols:t.protocols}:{}}}function l(e,t){const o=i(e.spec,"Agent.spec"),r=s(e),n="string"==typeof o.backend&&o.backend.trim()?o.backend.trim():"deepagents",p="object"==typeof o.config&&o.config?o.config:{},m="string"==typeof o.systemPrompt?o.systemPrompt:"string"==typeof p.systemPrompt?p.systemPrompt:void 0;return{id:r,...a(e)?{description:a(e)}:{},sourcePath:t,backend:"deepagent"===n?"deepagents":n,..."string"==typeof o.modelRef&&o.modelRef.trim()?{modelRef:(l=o.modelRef,l.replace(/^[^/]+\//u,""))}:{},...void 0!==m?{systemPrompt:m}:{},tools:c(o.tools),skills:c(o.skills),memory:Array.isArray(o.memory)?o.memory:[],subagents:c(o.subagents),config:p};var l}function f(e,t){const o="string"==typeof e.name&&e.name.trim()?e.name.trim():t??"default",r=p(e.provider),n=p(e.model),i="string"==typeof r&&r.trim()?r.trim():"unknown",s="string"==typeof n&&n.trim()?n.trim():o,a={...e};return delete a.name,delete a.provider,delete a.model,{id:o,provider:i,model:s,config:Object.fromEntries(Object.entries(a).map(([e,t])=>[e,p(t)]))}}function d(e){return f(i(e.spec,"Model.spec"),s(e))}function u(e){const t=i(e.spec,"Tool.spec");return{id:s(e),..."string"==typeof t.description?{description:t.description}:{},...void 0!==t.schema?{schema:t.schema}:{},..."string"==typeof t.implementation?{implementation:t.implementation}:{}}}function y(e){const t=i(e.spec,"Memory.spec"),o=s(e),r={...t};return delete r.provider,delete r.profile,delete r.mode,delete r.enabled,delete r.prompts,{id:o,provider:b(t.provider)??"langmem",...b(t.profile)?{profile:b(t.profile)}:{},...b(t.mode)?{mode:b(t.mode)}:{},enabled:!1!==t.enabled,..."object"==typeof t.prompts&&t.prompts?{prompts:g(t.prompts)}:{},...Object.keys(r).length>0?{config:r}:{}}}function g(e){const t=i(e,"Memory.spec.prompts");return{...b(t.semantic)?{semantic:b(t.semantic)}:{},...b(t.episodic)?{episodic:b(t.episodic)}:{},...b(t.procedural)?{procedural:b(t.procedural)}:{}}}function b(e){return"string"==typeof e&&e.trim()?e.trim():void 0}export async function loadWorkspaceFromYaml(i){const s=o.join(i,"config"),a=await n(s),p=[],g=new Map,w=new Map,h=new Map,A=new Map,k=new Map;for(const e of a){const o=await t(e,"utf8"),n=r(o).map(e=>e.toJSON()).filter(e=>null!==e);for(const t of n)if("string"==typeof t.kind)switch(t.kind){case"Runtime":p.push(m(t));break;case"Agent":{const o=l(t,e);g.set(o.id,o);break}case"Model":{const e=d(t);w.set(e.id,e);break}case"Models":if(Array.isArray(t.spec))for(const e of t.spec)if("object"==typeof e&&null!==e&&!Array.isArray(e)){const t=f(e);w.set(t.id,t)}break;case"Tool":{const e=u(t);h.set(e.id,e);break}case"Memory":{const e=y(t);k.set(e.id,e);break}}}for(const r of await async function(r){const n=o.join(r,"resources","tools");let i;try{i=await e(n,{withFileTypes:!0})}catch{return[]}return(await Promise.all(i.filter(e=>e.isFile()&&e.name.endsWith(".mjs")&&!e.name.startsWith("_")).map(e=>async function(e){const r=[...(await t(e,"utf8")).matchAll(/export\s+const\s+([A-Za-z_][A-Za-z0-9_]*)\s*=\s*tool\s*\(/gu)].map(e=>e[1]).filter(e=>"default"!==e);return(r.length>0?r:[o.basename(e,".mjs")]).map(t=>({id:t,sourcePath:e}))}(o.join(n,e.name))))).flat()}(i))h.has(r.id)||h.set(r.id,r);for(const n of await async function(n){const i=o.join(n,"resources","skills");let s;try{s=await e(i,{withFileTypes:!0})}catch{return[]}return(await Promise.all(s.filter(e=>e.isDirectory()).map(e=>async function(e,n){const i=o.join(e,"SKILL.md");let s;try{s=await t(i,"utf8")}catch{return}const a=function(e){const t=e.match(/^---\n([\s\S]*?)\n---/u);if(!t)return{};const o=r(t[1]).at(0)?.toJSON();return"object"!=typeof o||null===o||Array.isArray(o)?{}:o}(s);return{id:b(a.name)??n,path:i,...b(a.description)?{description:b(a.description)}:{},allowedTools:c(a["allowed-tools"])}}(o.join(i,e.name),e.name)))).filter(e=>Boolean(e))}(i))A.set(n.id,n);return{root:i,runtime:p.at(-1)??{defaultAgentId:"orchestra"},agents:g,models:w,tools:h,skills:A,memories:k}}
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@stable-harness/workspace-yaml",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "files": [
6
+ "dist/**/*.js",
7
+ "dist/**/*.d.ts",
8
+ "package.json"
9
+ ],
10
+ "exports": {
11
+ ".": "./dist/index.js"
12
+ },
13
+ "dependencies": {
14
+ "@stable-harness/core": "0.0.1"
15
+ }
16
+ }