@agntk/agent-harness 0.1.4 → 0.1.5

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 (123) hide show
  1. package/dist/{agent-framework-K4GUIICH.js → agent-framework-CMFC3VJM.js} +8 -8
  2. package/dist/{auto-processor-OLE45UI3.js → auto-processor-SDAJF67T.js} +3 -3
  3. package/dist/{chunk-XTBKL5BI.js → chunk-2ENYRENZ.js} +2 -2
  4. package/dist/{chunk-UPLBF4RZ.js → chunk-2UVWCTAY.js} +2 -2
  5. package/dist/{chunk-4CWAGBNS.js → chunk-4TQQZILG.js} +73 -3
  6. package/dist/chunk-4TQQZILG.js.map +1 -0
  7. package/dist/{chunk-A7BJPQQ6.js → chunk-5O5OGOOQ.js} +2 -2
  8. package/dist/{chunk-UWQTZMNI.js → chunk-7GZ4D6V6.js} +2 -2
  9. package/dist/{chunk-FLZU44SV.js → chunk-AN6Y4MDD.js} +6 -6
  10. package/dist/{chunk-4FDUOGSZ.js → chunk-D7AWV24Z.js} +3 -3
  11. package/dist/{chunk-CHJ5GNZC.js → chunk-EC42HQQH.js} +2 -2
  12. package/dist/{chunk-274RV3YO.js → chunk-GX2RCSFJ.js} +3 -3
  13. package/dist/{chunk-GJNNR2RA.js → chunk-M6PDMK2O.js} +3 -3
  14. package/dist/{chunk-GUJTBGVS.js → chunk-MSO7DKBK.js} +99 -188
  15. package/dist/chunk-MSO7DKBK.js.map +1 -0
  16. package/dist/{chunk-CSL3ERUI.js → chunk-NBEAK63K.js} +3 -3
  17. package/dist/{chunk-DA7IKHC4.js → chunk-NOJW5KG2.js} +2 -2
  18. package/dist/{chunk-M7NXUK55.js → chunk-NVC2WY4K.js} +2 -2
  19. package/dist/{chunk-YIJY5DBV.js → chunk-P74KXHA4.js} +4 -4
  20. package/dist/{chunk-YUFNYN2H.js → chunk-PTQ37NRI.js} +4 -4
  21. package/dist/{chunk-KFX54TQM.js → chunk-RPBC2QOA.js} +73 -3
  22. package/dist/chunk-RPBC2QOA.js.map +1 -0
  23. package/dist/{chunk-RY3ZFII7.js → chunk-SEHAQTBO.js} +6 -6
  24. package/dist/{chunk-MPZ3BPUI.js → chunk-UMXPOYZR.js} +4 -4
  25. package/dist/{chunk-W4T7PGI2.js → chunk-UXCHAS3Z.js} +4 -4
  26. package/dist/chunk-XVFVTDE6.js +98 -0
  27. package/dist/chunk-XVFVTDE6.js.map +1 -0
  28. package/dist/cli/index.js +105 -104
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/{config-WVMRUOCA.js → config-2O6S2YJO.js} +3 -3
  31. package/dist/config-LLQZYN2Q.js +11 -0
  32. package/dist/{context-loader-3ORBPMHJ.js → context-loader-XCZ5EXNG.js} +4 -4
  33. package/dist/{conversation-QDEIDQPH.js → conversation-OPLE23IM.js} +6 -6
  34. package/dist/{delegate-VJCJLYEK.js → delegate-ZJCIADNN.js} +7 -7
  35. package/dist/{export-6GCYHEHQ.js → export-2HEAAOUF.js} +3 -3
  36. package/dist/{graph-YUIPOSOO.js → graph-5MKRTC3J.js} +4 -4
  37. package/dist/harness-ABKZWP47.js +11 -0
  38. package/dist/{harness-WE4SLCML.js → harness-XSBQBY7T.js} +8 -8
  39. package/dist/index.d.ts +22 -0
  40. package/dist/index.js +90 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/{indexer-LONANRRM.js → indexer-YKSGUVYT.js} +4 -4
  43. package/dist/{instinct-learner-SRM72DHF.js → instinct-learner-CWVMLUWX.js} +5 -5
  44. package/dist/{intake-4M3HNU43.js → intake-M5NRR6QR.js} +5 -5
  45. package/dist/{intelligence-HJOCA4SJ.js → intelligence-UW4TCOC7.js} +10 -10
  46. package/dist/{journal-WANJL3MI.js → journal-KN265YLU.js} +5 -5
  47. package/dist/{loader-C3TKIKZR.js → loader-BOCVXVCH.js} +3 -3
  48. package/dist/{mcp-installer-6O2XXD3V.js → mcp-installer-KV3XZRRF.js} +3 -3
  49. package/dist/{primitive-registry-I6VTIR4W.js → primitive-registry-HOJMUFBT.js} +3 -3
  50. package/dist/{rule-engine-YGQ3RYZM.js → rule-engine-I4AFQSSR.js} +3 -3
  51. package/dist/{scaffold-A3VRRCBV.js → scaffold-ZY4XWINP.js} +4 -4
  52. package/dist/{scheduler-XHHIVHRI.js → scheduler-TYOQKO4C.js} +11 -11
  53. package/dist/{search-V3W5JMJG.js → search-4IYM525O.js} +3 -3
  54. package/dist/{semantic-search-2DTOO5UX.js → semantic-search-G624D6CI.js} +3 -3
  55. package/dist/{serve-DTQ3HENY.js → serve-QFUZWOU3.js} +9 -9
  56. package/dist/{telemetry-UC6PBXC7.js → telemetry-MVDNGJEC.js} +4 -4
  57. package/dist/{tool-executor-MJ7IG7PQ.js → tool-executor-KEYQLO4M.js} +5 -5
  58. package/dist/{tools-DZ4KETET.js → tools-EB3BHRRF.js} +4 -4
  59. package/dist/{types-EW7AIB3R.js → types-NYKB2DN3.js} +2 -2
  60. package/dist/{types-WGDLSPO6.js → types-VRSXU4AM.js} +2 -2
  61. package/dist/{universal-installer-AAXXYM5A.js → universal-installer-7MFCJUW7.js} +91 -6
  62. package/dist/universal-installer-7MFCJUW7.js.map +1 -0
  63. package/dist/{validator-7WXMDIHH.js → validator-LZXBFEPV.js} +8 -8
  64. package/dist/{verification-gate-FYXUX6LH.js → verification-gate-ALSJVKSW.js} +3 -3
  65. package/dist/{watcher-ISJC7YKL.js → watcher-CSHVDOCM.js} +5 -5
  66. package/dist/{web-server-DD7ZOP46.js → web-server-7NGOTK7J.js} +8 -8
  67. package/dist/web-server-7NGOTK7J.js.map +1 -0
  68. package/package.json +1 -1
  69. package/dist/chunk-4CWAGBNS.js.map +0 -1
  70. package/dist/chunk-GUJTBGVS.js.map +0 -1
  71. package/dist/chunk-KFX54TQM.js.map +0 -1
  72. package/dist/harness-LCHA3DWP.js +0 -10
  73. package/dist/universal-installer-AAXXYM5A.js.map +0 -1
  74. /package/dist/{agent-framework-K4GUIICH.js.map → agent-framework-CMFC3VJM.js.map} +0 -0
  75. /package/dist/{auto-processor-OLE45UI3.js.map → auto-processor-SDAJF67T.js.map} +0 -0
  76. /package/dist/{chunk-XTBKL5BI.js.map → chunk-2ENYRENZ.js.map} +0 -0
  77. /package/dist/{chunk-UPLBF4RZ.js.map → chunk-2UVWCTAY.js.map} +0 -0
  78. /package/dist/{chunk-A7BJPQQ6.js.map → chunk-5O5OGOOQ.js.map} +0 -0
  79. /package/dist/{chunk-UWQTZMNI.js.map → chunk-7GZ4D6V6.js.map} +0 -0
  80. /package/dist/{chunk-FLZU44SV.js.map → chunk-AN6Y4MDD.js.map} +0 -0
  81. /package/dist/{chunk-4FDUOGSZ.js.map → chunk-D7AWV24Z.js.map} +0 -0
  82. /package/dist/{chunk-CHJ5GNZC.js.map → chunk-EC42HQQH.js.map} +0 -0
  83. /package/dist/{chunk-274RV3YO.js.map → chunk-GX2RCSFJ.js.map} +0 -0
  84. /package/dist/{chunk-GJNNR2RA.js.map → chunk-M6PDMK2O.js.map} +0 -0
  85. /package/dist/{chunk-CSL3ERUI.js.map → chunk-NBEAK63K.js.map} +0 -0
  86. /package/dist/{chunk-DA7IKHC4.js.map → chunk-NOJW5KG2.js.map} +0 -0
  87. /package/dist/{chunk-M7NXUK55.js.map → chunk-NVC2WY4K.js.map} +0 -0
  88. /package/dist/{chunk-YIJY5DBV.js.map → chunk-P74KXHA4.js.map} +0 -0
  89. /package/dist/{chunk-YUFNYN2H.js.map → chunk-PTQ37NRI.js.map} +0 -0
  90. /package/dist/{chunk-RY3ZFII7.js.map → chunk-SEHAQTBO.js.map} +0 -0
  91. /package/dist/{chunk-MPZ3BPUI.js.map → chunk-UMXPOYZR.js.map} +0 -0
  92. /package/dist/{chunk-W4T7PGI2.js.map → chunk-UXCHAS3Z.js.map} +0 -0
  93. /package/dist/{config-WVMRUOCA.js.map → config-2O6S2YJO.js.map} +0 -0
  94. /package/dist/{context-loader-3ORBPMHJ.js.map → config-LLQZYN2Q.js.map} +0 -0
  95. /package/dist/{conversation-QDEIDQPH.js.map → context-loader-XCZ5EXNG.js.map} +0 -0
  96. /package/dist/{delegate-VJCJLYEK.js.map → conversation-OPLE23IM.js.map} +0 -0
  97. /package/dist/{graph-YUIPOSOO.js.map → delegate-ZJCIADNN.js.map} +0 -0
  98. /package/dist/{export-6GCYHEHQ.js.map → export-2HEAAOUF.js.map} +0 -0
  99. /package/dist/{harness-LCHA3DWP.js.map → graph-5MKRTC3J.js.map} +0 -0
  100. /package/dist/{harness-WE4SLCML.js.map → harness-ABKZWP47.js.map} +0 -0
  101. /package/dist/{indexer-LONANRRM.js.map → harness-XSBQBY7T.js.map} +0 -0
  102. /package/dist/{instinct-learner-SRM72DHF.js.map → indexer-YKSGUVYT.js.map} +0 -0
  103. /package/dist/{intake-4M3HNU43.js.map → instinct-learner-CWVMLUWX.js.map} +0 -0
  104. /package/dist/{journal-WANJL3MI.js.map → intake-M5NRR6QR.js.map} +0 -0
  105. /package/dist/{intelligence-HJOCA4SJ.js.map → intelligence-UW4TCOC7.js.map} +0 -0
  106. /package/dist/{loader-C3TKIKZR.js.map → journal-KN265YLU.js.map} +0 -0
  107. /package/dist/{telemetry-UC6PBXC7.js.map → loader-BOCVXVCH.js.map} +0 -0
  108. /package/dist/{mcp-installer-6O2XXD3V.js.map → mcp-installer-KV3XZRRF.js.map} +0 -0
  109. /package/dist/{primitive-registry-I6VTIR4W.js.map → primitive-registry-HOJMUFBT.js.map} +0 -0
  110. /package/dist/{rule-engine-YGQ3RYZM.js.map → rule-engine-I4AFQSSR.js.map} +0 -0
  111. /package/dist/{scaffold-A3VRRCBV.js.map → scaffold-ZY4XWINP.js.map} +0 -0
  112. /package/dist/{scheduler-XHHIVHRI.js.map → scheduler-TYOQKO4C.js.map} +0 -0
  113. /package/dist/{search-V3W5JMJG.js.map → search-4IYM525O.js.map} +0 -0
  114. /package/dist/{semantic-search-2DTOO5UX.js.map → semantic-search-G624D6CI.js.map} +0 -0
  115. /package/dist/{serve-DTQ3HENY.js.map → serve-QFUZWOU3.js.map} +0 -0
  116. /package/dist/{tool-executor-MJ7IG7PQ.js.map → telemetry-MVDNGJEC.js.map} +0 -0
  117. /package/dist/{tools-DZ4KETET.js.map → tool-executor-KEYQLO4M.js.map} +0 -0
  118. /package/dist/{types-EW7AIB3R.js.map → tools-EB3BHRRF.js.map} +0 -0
  119. /package/dist/{types-WGDLSPO6.js.map → types-NYKB2DN3.js.map} +0 -0
  120. /package/dist/{validator-7WXMDIHH.js.map → types-VRSXU4AM.js.map} +0 -0
  121. /package/dist/{web-server-DD7ZOP46.js.map → validator-LZXBFEPV.js.map} +0 -0
  122. /package/dist/{verification-gate-FYXUX6LH.js.map → verification-gate-ALSJVKSW.js.map} +0 -0
  123. /package/dist/{watcher-ISJC7YKL.js.map → watcher-CSHVDOCM.js.map} +0 -0
@@ -2,27 +2,27 @@
2
2
 
3
3
  import {
4
4
  createHarness
5
- } from "./chunk-YIJY5DBV.js";
5
+ } from "./chunk-P74KXHA4.js";
6
6
  import "./chunk-AGAAFJEO.js";
7
7
  import "./chunk-5H34JPMB.js";
8
- import "./chunk-DA7IKHC4.js";
9
- import "./chunk-UWQTZMNI.js";
8
+ import "./chunk-NOJW5KG2.js";
9
+ import "./chunk-7GZ4D6V6.js";
10
10
  import "./chunk-UDZIS2AQ.js";
11
11
  import "./chunk-DTTXPHFW.js";
12
12
  import "./chunk-Z2PUCXTZ.js";
13
13
  import "./chunk-TAT6JU3X.js";
14
14
  import "./chunk-JKMGYWXB.js";
15
15
  import "./chunk-OC6YSTDX.js";
16
- import "./chunk-XTBKL5BI.js";
16
+ import "./chunk-2ENYRENZ.js";
17
17
  import {
18
18
  loadDirectory
19
- } from "./chunk-UPLBF4RZ.js";
19
+ } from "./chunk-2UVWCTAY.js";
20
20
  import {
21
21
  log
22
22
  } from "./chunk-BSKDOFRT.js";
23
23
  import "./chunk-IZ6UZ3ZL.js";
24
- import "./chunk-CHJ5GNZC.js";
25
- import "./chunk-4CWAGBNS.js";
24
+ import "./chunk-EC42HQQH.js";
25
+ import "./chunk-4TQQZILG.js";
26
26
  import {
27
27
  __require
28
28
  } from "./chunk-ZZJOFKAT.js";
@@ -341,4 +341,4 @@ export {
341
341
  createCliApproval,
342
342
  createWebhookApproval
343
343
  };
344
- //# sourceMappingURL=agent-framework-K4GUIICH.js.map
344
+ //# sourceMappingURL=agent-framework-CMFC3VJM.js.map
@@ -3,11 +3,11 @@
3
3
  import {
4
4
  autoProcessAll,
5
5
  autoProcessFile
6
- } from "./chunk-M7NXUK55.js";
7
- import "./chunk-4CWAGBNS.js";
6
+ } from "./chunk-NVC2WY4K.js";
7
+ import "./chunk-4TQQZILG.js";
8
8
  import "./chunk-ZZJOFKAT.js";
9
9
  export {
10
10
  autoProcessAll,
11
11
  autoProcessFile
12
12
  };
13
- //# sourceMappingURL=auto-processor-OLE45UI3.js.map
13
+ //# sourceMappingURL=auto-processor-SDAJF67T.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  loadDirectory
5
- } from "./chunk-UPLBF4RZ.js";
5
+ } from "./chunk-2UVWCTAY.js";
6
6
 
7
7
  // src/runtime/tools.ts
8
8
  import { existsSync } from "fs";
@@ -108,4 +108,4 @@ export {
108
108
  listToolSummaries,
109
109
  checkToolAuth
110
110
  };
111
- //# sourceMappingURL=chunk-XTBKL5BI.js.map
111
+ //# sourceMappingURL=chunk-2ENYRENZ.js.map
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  CORE_PRIMITIVE_DIRS,
5
5
  FrontmatterSchema
6
- } from "./chunk-4CWAGBNS.js";
6
+ } from "./chunk-4TQQZILG.js";
7
7
 
8
8
  // src/primitives/loader.ts
9
9
  import { readFileSync, readdirSync, existsSync } from "fs";
@@ -112,4 +112,4 @@ export {
112
112
  estimateTokens,
113
113
  getAtLevel
114
114
  };
115
- //# sourceMappingURL=chunk-UPLBF4RZ.js.map
115
+ //# sourceMappingURL=chunk-2UVWCTAY.js.map
@@ -124,7 +124,62 @@ var HarnessConfigSchema = z.object({
124
124
  name: z.string().optional(),
125
125
  /** Optional auth token for private registries */
126
126
  token: z.string().optional()
127
- }).passthrough()).default([])
127
+ }).passthrough()).default([]),
128
+ /**
129
+ * License policy for `harness install <url>`. Controls how the universal
130
+ * installer reacts to the license detected on a fetched primitive (Level 3
131
+ * of task 12.14). Detection itself runs unconditionally — this only governs
132
+ * what happens after the license is determined.
133
+ */
134
+ install: z.object({
135
+ /**
136
+ * SPDX ids the installer accepts without warning. Permissive defaults
137
+ * cover the OSI-approved ecosystem most users care about. Add or remove
138
+ * here to tighten or loosen the policy.
139
+ */
140
+ allowed_licenses: z.array(z.string()).default([
141
+ "MIT",
142
+ "Apache-2.0",
143
+ "BSD-2-Clause",
144
+ "BSD-3-Clause",
145
+ "ISC",
146
+ "MPL-2.0",
147
+ "CC-BY-4.0",
148
+ "CC0-1.0",
149
+ "Unlicense"
150
+ ]),
151
+ /**
152
+ * What to do when the detected license is not in `allowed_licenses` and
153
+ * is not classified as PROPRIETARY. Includes the UNKNOWN case (no LICENSE
154
+ * file found anywhere) and any non-permissive SPDX id like GPL-3.0.
155
+ *
156
+ * - allow: install silently (legacy v0.1.3 behavior — safest for migration)
157
+ * - warn: install with a stderr warning naming the license_source
158
+ * - prompt: ask Y/n on TTY; treats non-TTY as `block`
159
+ * - block: refuse the install with an error showing the override flag
160
+ */
161
+ on_unknown_license: z.enum(["allow", "warn", "prompt", "block"]).default("warn"),
162
+ /**
163
+ * What to do when the detected license is PROPRIETARY (text contains
164
+ * "all rights reserved" or no permission grant). Defaults to `block`
165
+ * because shipping proprietary content was the v0.1.0 yank cause.
166
+ */
167
+ on_proprietary: z.enum(["allow", "warn", "prompt", "block"]).default("block")
168
+ }).passthrough().default({
169
+ allowed_licenses: [
170
+ "MIT",
171
+ "Apache-2.0",
172
+ "BSD-2-Clause",
173
+ "BSD-3-Clause",
174
+ "ISC",
175
+ "MPL-2.0",
176
+ "CC-BY-4.0",
177
+ "CC0-1.0",
178
+ "Unlicense"
179
+ ],
180
+ on_unknown_license: "warn",
181
+ on_proprietary: "block"
182
+ })
128
183
  }).passthrough();
129
184
  var CONFIG_DEFAULTS = {
130
185
  agent: { name: "agent", version: "0.1.0" },
@@ -143,7 +198,22 @@ var CONFIG_DEFAULTS = {
143
198
  intelligence: { auto_journal: false, auto_learn: false },
144
199
  proactive: { enabled: false, max_per_hour: 5, cooldown_minutes: 30 },
145
200
  mcp: { servers: {} },
146
- registries: []
201
+ registries: [],
202
+ install: {
203
+ allowed_licenses: [
204
+ "MIT",
205
+ "Apache-2.0",
206
+ "BSD-2-Clause",
207
+ "BSD-3-Clause",
208
+ "ISC",
209
+ "MPL-2.0",
210
+ "CC-BY-4.0",
211
+ "CC0-1.0",
212
+ "Unlicense"
213
+ ],
214
+ on_unknown_license: "warn",
215
+ on_proprietary: "block"
216
+ }
147
217
  };
148
218
  var CORE_PRIMITIVE_DIRS = ["rules", "instincts", "skills", "playbooks", "workflows", "tools", "agents"];
149
219
  function getPrimitiveDirs(config) {
@@ -165,4 +235,4 @@ export {
165
235
  CORE_PRIMITIVE_DIRS,
166
236
  getPrimitiveDirs
167
237
  };
168
- //# sourceMappingURL=chunk-4CWAGBNS.js.map
238
+ //# sourceMappingURL=chunk-4TQQZILG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/types.ts"],"sourcesContent":["import { z } from 'zod';\n\n// --- Frontmatter ---\nexport const FrontmatterSchema = z.object({\n id: z.string(),\n tags: z.array(z.string()).default([]),\n created: z.string().optional(),\n updated: z.string().optional(),\n author: z.enum(['human', 'agent', 'infrastructure']).default('human'),\n status: z.enum(['active', 'archived', 'deprecated', 'draft']).default('active'),\n related: z.array(z.string()).default([]),\n schedule: z.string().optional(),\n with: z.string().optional(),\n channel: z.string().optional(),\n duration_minutes: z.number().optional(),\n max_retries: z.number().int().nonnegative().optional(),\n retry_delay_ms: z.number().int().positive().optional(),\n});\n\nexport type Frontmatter = z.infer<typeof FrontmatterSchema>;\n\n// --- Primitive Document ---\nexport interface HarnessDocument {\n path: string;\n frontmatter: Frontmatter;\n l0: string;\n l1: string;\n body: string;\n raw: string;\n}\n\n// --- Primitive Types ---\nexport type PrimitiveType =\n | 'rule'\n | 'instinct'\n | 'skill'\n | 'playbook'\n | 'workflow'\n | 'tool'\n | 'agent'\n | 'session'\n | 'journal';\n\nexport interface Primitive {\n type: PrimitiveType;\n doc: HarnessDocument;\n}\n\n// --- Config ---\nexport const HarnessConfigSchema = z.object({\n agent: z.object({\n name: z.string().min(1),\n version: z.string().default('0.1.0'),\n }).passthrough(),\n model: z.object({\n provider: z.string().default('openrouter'),\n id: z.string().min(1),\n max_tokens: z.number().int().positive().default(200000),\n max_retries: z.number().int().nonnegative().default(2),\n timeout_ms: z.number().int().positive().optional(),\n /** Cheap model for auto-generating summaries, tags, frontmatter (e.g. 'google/gemini-flash-1.5') */\n summary_model: z.string().optional(),\n /** Fast model for validation, checks, and quick decisions (e.g. 'google/gemini-flash-1.5') */\n fast_model: z.string().optional(),\n }).passthrough(),\n runtime: z.object({\n scratchpad_budget: z.number().int().nonnegative().default(10000),\n /** Reserved: cron expression for periodic heartbeat check (not yet implemented) */\n heartbeat: z.string().optional(),\n /** Reserved: cron expression for daily summary generation (not yet implemented) */\n daily_summary: z.string().optional(),\n /** Auto-process primitives on save: generate frontmatter, L0/L1 summaries (default: true) */\n auto_process: z.boolean().default(true),\n quiet_hours: z.object({\n start: z.number().int().min(0).max(23).default(23),\n end: z.number().int().min(0).max(23).default(6),\n }).passthrough().default({ start: 23, end: 6 }),\n timezone: z.string().default('America/New_York'),\n }).passthrough(),\n memory: z.object({\n session_retention_days: z.number().int().positive().default(7),\n journal_retention_days: z.number().int().positive().default(365),\n }).passthrough(),\n channels: z.object({\n primary: z.string().default('cli'),\n }).passthrough(),\n extensions: z.object({\n directories: z.array(z.string()).default([]),\n }).passthrough().default({ directories: [] }),\n rate_limits: z.object({\n /** Max LLM calls per minute (default: unlimited) */\n per_minute: z.number().int().positive().optional(),\n /** Max LLM calls per hour (default: unlimited) */\n per_hour: z.number().int().positive().optional(),\n /** Max LLM calls per day (default: unlimited) */\n per_day: z.number().int().positive().optional(),\n }).passthrough().default({}),\n budget: z.object({\n /** Max daily spend in USD (default: unlimited) */\n daily_limit_usd: z.number().positive().optional(),\n /** Max monthly spend in USD (default: unlimited) */\n monthly_limit_usd: z.number().positive().optional(),\n /** Block runs when budget exceeded (default: true) */\n enforce: z.boolean().default(true),\n }).passthrough().default({ enforce: true }),\n mcp: z.object({\n /** MCP server definitions keyed by server name */\n servers: z.record(z.string(), z.object({\n /** Transport type: 'stdio' for local processes, 'http' for remote, 'sse' for SSE */\n transport: z.enum(['stdio', 'http', 'sse']),\n /** Command to spawn (stdio transport only) */\n command: z.string().optional(),\n /** Command arguments (stdio transport only) */\n args: z.array(z.string()).optional(),\n /** Environment variables for the spawned process (stdio transport only) */\n env: z.record(z.string(), z.string()).optional(),\n /** Working directory for the spawned process (stdio transport only) */\n cwd: z.string().optional(),\n /** URL endpoint (http/sse transport only) */\n url: z.string().optional(),\n /** Additional HTTP headers (http/sse transport only) */\n headers: z.record(z.string(), z.string()).optional(),\n /** Whether this server is enabled (default: true) */\n enabled: z.boolean().default(true),\n }).passthrough()).default({}),\n }).passthrough().default({ servers: {} }),\n /** Intelligence & continuous learning config */\n intelligence: z.object({\n /** Auto-run journal synthesis on a cron schedule (default: off). Set to cron string e.g. \"0 22 * * *\" or true for default \"0 22 * * *\". */\n auto_journal: z.union([z.boolean(), z.string()]).default(false),\n /** Auto-run instinct learning after journal synthesis (default: off) */\n auto_learn: z.boolean().default(false),\n }).passthrough().default({ auto_journal: false, auto_learn: false }),\n /** Proactive execution config (scheduler rate-limiting) */\n proactive: z.object({\n /** Enable proactive scheduled workflows (default: false) */\n enabled: z.boolean().default(false),\n /** Max proactive workflow executions per hour (default: 5) */\n max_per_hour: z.number().int().positive().default(5),\n /** Cooldown in minutes between proactive runs of the same workflow (default: 30) */\n cooldown_minutes: z.number().int().nonnegative().default(30),\n /** Override quiet hours for proactive execution (start/end hours, inherits runtime.quiet_hours if not set) */\n quiet_hours: z.object({\n start: z.number().int().min(0).max(23).optional(),\n end: z.number().int().min(0).max(23).optional(),\n }).passthrough().optional(),\n }).passthrough().default({ enabled: false, max_per_hour: 5, cooldown_minutes: 30 }),\n /** Primitive bundle registries for search/install */\n registries: z.array(z.object({\n /** Registry URL (HTTPS endpoint) */\n url: z.string().url(),\n /** Optional display name */\n name: z.string().optional(),\n /** Optional auth token for private registries */\n token: z.string().optional(),\n }).passthrough()).default([]),\n /**\n * License policy for `harness install <url>`. Controls how the universal\n * installer reacts to the license detected on a fetched primitive (Level 3\n * of task 12.14). Detection itself runs unconditionally — this only governs\n * what happens after the license is determined.\n */\n install: z.object({\n /**\n * SPDX ids the installer accepts without warning. Permissive defaults\n * cover the OSI-approved ecosystem most users care about. Add or remove\n * here to tighten or loosen the policy.\n */\n allowed_licenses: z.array(z.string()).default([\n 'MIT',\n 'Apache-2.0',\n 'BSD-2-Clause',\n 'BSD-3-Clause',\n 'ISC',\n 'MPL-2.0',\n 'CC-BY-4.0',\n 'CC0-1.0',\n 'Unlicense',\n ]),\n /**\n * What to do when the detected license is not in `allowed_licenses` and\n * is not classified as PROPRIETARY. Includes the UNKNOWN case (no LICENSE\n * file found anywhere) and any non-permissive SPDX id like GPL-3.0.\n *\n * - allow: install silently (legacy v0.1.3 behavior — safest for migration)\n * - warn: install with a stderr warning naming the license_source\n * - prompt: ask Y/n on TTY; treats non-TTY as `block`\n * - block: refuse the install with an error showing the override flag\n */\n on_unknown_license: z.enum(['allow', 'warn', 'prompt', 'block']).default('warn'),\n /**\n * What to do when the detected license is PROPRIETARY (text contains\n * \"all rights reserved\" or no permission grant). Defaults to `block`\n * because shipping proprietary content was the v0.1.0 yank cause.\n */\n on_proprietary: z.enum(['allow', 'warn', 'prompt', 'block']).default('block'),\n }).passthrough().default({\n allowed_licenses: [\n 'MIT',\n 'Apache-2.0',\n 'BSD-2-Clause',\n 'BSD-3-Clause',\n 'ISC',\n 'MPL-2.0',\n 'CC-BY-4.0',\n 'CC0-1.0',\n 'Unlicense',\n ],\n on_unknown_license: 'warn',\n on_proprietary: 'block',\n }),\n}).passthrough();\n\nexport type HarnessConfig = z.infer<typeof HarnessConfigSchema>;\n\nexport const CONFIG_DEFAULTS: HarnessConfig = {\n agent: { name: 'agent', version: '0.1.0' },\n model: { provider: 'openrouter', id: 'anthropic/claude-sonnet-4', max_tokens: 200000, max_retries: 2 },\n runtime: {\n scratchpad_budget: 10000,\n auto_process: true,\n quiet_hours: { start: 23, end: 6 },\n timezone: 'America/New_York',\n },\n memory: { session_retention_days: 7, journal_retention_days: 365 },\n channels: { primary: 'cli' },\n extensions: { directories: [] },\n rate_limits: {},\n budget: { enforce: true },\n intelligence: { auto_journal: false, auto_learn: false },\n proactive: { enabled: false, max_per_hour: 5, cooldown_minutes: 30 },\n mcp: { servers: {} },\n registries: [],\n install: {\n allowed_licenses: [\n 'MIT',\n 'Apache-2.0',\n 'BSD-2-Clause',\n 'BSD-3-Clause',\n 'ISC',\n 'MPL-2.0',\n 'CC-BY-4.0',\n 'CC0-1.0',\n 'Unlicense',\n ],\n on_unknown_license: 'warn',\n on_proprietary: 'block',\n },\n};\n\nexport const CORE_PRIMITIVE_DIRS = ['rules', 'instincts', 'skills', 'playbooks', 'workflows', 'tools', 'agents'] as const;\n\nexport function getPrimitiveDirs(config?: HarnessConfig): string[] {\n const dirs: string[] = [...CORE_PRIMITIVE_DIRS];\n if (config?.extensions?.directories) {\n for (const dir of config.extensions.directories) {\n if (!dirs.includes(dir)) {\n dirs.push(dir);\n }\n }\n }\n return dirs;\n}\n\n// --- Agent State ---\nexport interface AgentState {\n mode: string;\n goals: string[];\n active_workflows: string[];\n last_interaction: string;\n unfinished_business: string[];\n}\n\n// --- Context Budget ---\nexport interface ContextBudget {\n max_tokens: number;\n used_tokens: number;\n remaining: number;\n loaded_files: string[];\n}\n\n// --- Utility Types ---\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\n// --- Lifecycle Hooks ---\nexport interface HarnessHooks {\n /** Called after boot completes (context loaded, state ready) */\n onBoot?: (context: { agent: HarnessAgent; config: HarnessConfig; state: AgentState }) => void | Promise<void>;\n /** Called after each session completes (run or stream) */\n onSessionEnd?: (context: { agent: HarnessAgent; sessionId: string; prompt: string; result: AgentRunResult }) => void | Promise<void>;\n /** Called when an error occurs during run/stream */\n onError?: (context: { agent: HarnessAgent; error: Error; prompt?: string }) => void | Promise<void>;\n /** Called when agent state changes (boot, shutdown, after run) */\n onStateChange?: (context: { agent: HarnessAgent; previous: string; current: string }) => void | Promise<void>;\n /** Called before shutdown completes */\n onShutdown?: (context: { agent: HarnessAgent; state: AgentState }) => void | Promise<void>;\n}\n\n// --- Tool Executor Config (inline to avoid circular deps) ---\nexport interface ToolExecutorOptions {\n /** Maximum tool calls per run (default: 5) */\n maxToolCalls?: number;\n /** Timeout per tool call in ms (default: 30000) */\n toolTimeoutMs?: number;\n /** Whether to allow HTTP tool execution (default: true) */\n allowHttpExecution?: boolean;\n}\n\n// --- Agent Options (programmatic API) ---\nexport interface CreateHarnessOptions {\n dir: string;\n /** Model ID override (e.g., \"claude-sonnet-4-20250514\" or \"gpt-4o\") */\n model?: string;\n /** Provider override (e.g., \"anthropic\", \"openai\", \"openrouter\") */\n provider?: string;\n apiKey?: string;\n config?: DeepPartial<HarnessConfig>;\n /** Lifecycle hooks for agent events */\n hooks?: HarnessHooks;\n /** Tool execution configuration */\n toolExecutor?: ToolExecutorOptions;\n}\n\n/** Record of a single tool call made during a run */\nexport interface ToolCallInfo {\n toolName: string;\n args: Record<string, unknown>;\n result: unknown;\n}\n\n// --- Agent Interface ---\nexport interface AgentRunResult {\n text: string;\n usage: { inputTokens: number; outputTokens: number; totalTokens: number };\n session_id: string;\n steps: number;\n /** Tool calls made during the run (empty array if none) */\n toolCalls: ToolCallInfo[];\n}\n\nexport interface AgentStreamResult {\n /** Async iterable of text chunks — consume with for-await */\n textStream: AsyncIterable<string>;\n /** Resolves after the stream is fully consumed with session metadata */\n result: Promise<AgentRunResult>;\n}\n\nexport interface HarnessAgent {\n name: string;\n config: HarnessConfig;\n boot(): Promise<void>;\n run(prompt: string): Promise<AgentRunResult>;\n stream(prompt: string): AgentStreamResult;\n shutdown(): Promise<void>;\n getSystemPrompt(): string;\n getState(): AgentState;\n}\n\n// --- Index Entry ---\nexport interface IndexEntry {\n id: string;\n path: string;\n tags: string[];\n l0: string;\n created: string;\n status: string;\n}\n"],"mappings":"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","names":[]}
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-JKMGYWXB.js";
22
22
  import {
23
23
  loadConfig
24
- } from "./chunk-CHJ5GNZC.js";
24
+ } from "./chunk-EC42HQQH.js";
25
25
 
26
26
  // src/runtime/telemetry.ts
27
27
  import { existsSync, readdirSync } from "fs";
@@ -233,4 +233,4 @@ export {
233
233
  collectSnapshot,
234
234
  formatDashboard
235
235
  };
236
- //# sourceMappingURL=chunk-A7BJPQQ6.js.map
236
+ //# sourceMappingURL=chunk-5O5OGOOQ.js.map
@@ -4,7 +4,7 @@ import {
4
4
  estimateTokens,
5
5
  getAtLevel,
6
6
  loadAllPrimitivesWithErrors
7
- } from "./chunk-UPLBF4RZ.js";
7
+ } from "./chunk-2UVWCTAY.js";
8
8
  import {
9
9
  log
10
10
  } from "./chunk-BSKDOFRT.js";
@@ -151,4 +151,4 @@ ${scratch}`);
151
151
  export {
152
152
  buildSystemPrompt
153
153
  };
154
- //# sourceMappingURL=chunk-UWQTZMNI.js.map
154
+ //# sourceMappingURL=chunk-7GZ4D6V6.js.map
@@ -2,25 +2,25 @@
2
2
 
3
3
  import {
4
4
  fixCapability
5
- } from "./chunk-W4T7PGI2.js";
5
+ } from "./chunk-UXCHAS3Z.js";
6
6
  import {
7
7
  validateMcpConfig
8
8
  } from "./chunk-5H34JPMB.js";
9
9
  import {
10
10
  buildSystemPrompt
11
- } from "./chunk-UWQTZMNI.js";
11
+ } from "./chunk-7GZ4D6V6.js";
12
12
  import {
13
13
  loadState
14
14
  } from "./chunk-UDZIS2AQ.js";
15
15
  import {
16
16
  loadDirectoryWithErrors
17
- } from "./chunk-UPLBF4RZ.js";
17
+ } from "./chunk-2UVWCTAY.js";
18
18
  import {
19
19
  loadConfig
20
- } from "./chunk-CHJ5GNZC.js";
20
+ } from "./chunk-EC42HQQH.js";
21
21
  import {
22
22
  getPrimitiveDirs
23
- } from "./chunk-4CWAGBNS.js";
23
+ } from "./chunk-4TQQZILG.js";
24
24
 
25
25
  // src/runtime/validator.ts
26
26
  import { existsSync, readdirSync, mkdirSync } from "fs";
@@ -227,4 +227,4 @@ export {
227
227
  validateHarness,
228
228
  doctorHarness
229
229
  };
230
- //# sourceMappingURL=chunk-FLZU44SV.js.map
230
+ //# sourceMappingURL=chunk-AN6Y4MDD.js.map
@@ -2,10 +2,10 @@
2
2
 
3
3
  import {
4
4
  loadDirectory
5
- } from "./chunk-UPLBF4RZ.js";
5
+ } from "./chunk-2UVWCTAY.js";
6
6
  import {
7
7
  CORE_PRIMITIVE_DIRS
8
- } from "./chunk-4CWAGBNS.js";
8
+ } from "./chunk-4TQQZILG.js";
9
9
 
10
10
  // src/runtime/indexer.ts
11
11
  import { writeFileSync, existsSync, mkdirSync } from "fs";
@@ -66,4 +66,4 @@ export {
66
66
  writeIndexFile,
67
67
  rebuildAllIndexes
68
68
  };
69
- //# sourceMappingURL=chunk-4FDUOGSZ.js.map
69
+ //# sourceMappingURL=chunk-D7AWV24Z.js.map
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  CONFIG_DEFAULTS,
5
5
  HarnessConfigSchema
6
- } from "./chunk-4CWAGBNS.js";
6
+ } from "./chunk-4TQQZILG.js";
7
7
 
8
8
  // src/core/config.ts
9
9
  import { readFileSync, existsSync } from "fs";
@@ -97,4 +97,4 @@ export {
97
97
  loadConfig,
98
98
  writeDefaultConfig
99
99
  };
100
- //# sourceMappingURL=chunk-CHJ5GNZC.js.map
100
+ //# sourceMappingURL=chunk-EC42HQQH.js.map
@@ -2,10 +2,10 @@
2
2
 
3
3
  import {
4
4
  loadDirectoryWithErrors
5
- } from "./chunk-UPLBF4RZ.js";
5
+ } from "./chunk-2UVWCTAY.js";
6
6
  import {
7
7
  getPrimitiveDirs
8
- } from "./chunk-4CWAGBNS.js";
8
+ } from "./chunk-4TQQZILG.js";
9
9
 
10
10
  // src/runtime/graph.ts
11
11
  import { existsSync } from "fs";
@@ -159,4 +159,4 @@ export {
159
159
  buildDependencyGraph,
160
160
  getGraphStats
161
161
  };
162
- //# sourceMappingURL=chunk-274RV3YO.js.map
162
+ //# sourceMappingURL=chunk-GX2RCSFJ.js.map
@@ -2,14 +2,14 @@
2
2
 
3
3
  import {
4
4
  loadDirectory
5
- } from "./chunk-UPLBF4RZ.js";
5
+ } from "./chunk-2UVWCTAY.js";
6
6
  import {
7
7
  generate,
8
8
  getModel
9
9
  } from "./chunk-IZ6UZ3ZL.js";
10
10
  import {
11
11
  loadConfig
12
- } from "./chunk-CHJ5GNZC.js";
12
+ } from "./chunk-EC42HQQH.js";
13
13
 
14
14
  // src/runtime/instinct-learner.ts
15
15
  import { writeFileSync, readdirSync, readFileSync, existsSync, mkdirSync } from "fs";
@@ -197,4 +197,4 @@ export {
197
197
  learnFromSessions,
198
198
  harvestInstincts
199
199
  };
200
- //# sourceMappingURL=chunk-GJNNR2RA.js.map
200
+ //# sourceMappingURL=chunk-M6PDMK2O.js.map