@harness-engineering/cli 2.5.0 → 2.6.0
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/dist/{agents-md-KAD3L2NO.js → agents-md-2JUQ4FE2.js} +4 -4
- package/dist/{analyzer-VY6DJVOU-NI56JRFK.js → analyzer-VY6DJVOU-4AHIJLNS.js} +2 -2
- package/dist/{architecture-OC7TFCFF.js → architecture-CXAVNB5X.js} +5 -5
- package/dist/{assess-project-ZGMRPTS3.js → assess-project-M626SSPN.js} +1 -1
- package/dist/bin/harness-mcp.js +15 -15
- package/dist/bin/harness.js +24 -24
- package/dist/{check-phase-gate-PD5MVEZT.js → check-phase-gate-XMU6LLUQ.js} +5 -5
- package/dist/{chunk-N6VWCISQ.js → chunk-24KCOJJG.js} +2 -2
- package/dist/{chunk-XIW24BJY.js → chunk-43M3RLFQ.js} +3 -3
- package/dist/{chunk-2RNGLYOG.js → chunk-5JNSFYZU.js} +2 -2
- package/dist/{chunk-XSI3RDH6.js → chunk-6AX6R3LM.js} +7 -7
- package/dist/{chunk-DOUS4ULX.js → chunk-GWE5LL3R.js} +6 -6
- package/dist/{chunk-7DOGGXQU.js → chunk-GWF2OILZ.js} +2 -2
- package/dist/{chunk-TCSNO7YW.js → chunk-HFOB2MPQ.js} +2 -2
- package/dist/{chunk-6SRKI77C.js → chunk-HMW3VKUF.js} +3 -3
- package/dist/{chunk-IXKGMPMT.js → chunk-HYTRDAHV.js} +2 -2
- package/dist/{chunk-NOOPJD5R.js → chunk-I6K43QQS.js} +3 -3
- package/dist/{chunk-IGBQIXPS.js → chunk-JFZOWO7D.js} +2 -2
- package/dist/{chunk-57TS3UGN.js → chunk-K246XQ2L.js} +2 -2
- package/dist/{chunk-A3EBWI7U.js → chunk-L5BCZ5XS.js} +2 -2
- package/dist/{chunk-UCL3UZIC.js → chunk-NX6A24DS.js} +1588 -925
- package/dist/{chunk-65MJPWFN.js → chunk-OA6SWTU4.js} +6 -6
- package/dist/{chunk-2LPUIBVH.js → chunk-OH3NXXUY.js} +121 -2
- package/dist/{chunk-LT244Y6E.js → chunk-ORNMAYHB.js} +196 -75
- package/dist/{chunk-4CWFVEVV.js → chunk-PFZEADQM.js} +1 -1
- package/dist/{chunk-JE5GQVCQ.js → chunk-Q6ZR2L6Q.js} +2 -2
- package/dist/{chunk-UF7BKRH4.js → chunk-QOKMDDBJ.js} +4 -4
- package/dist/{chunk-IWRYCUDO.js → chunk-SZEFU6XC.js} +1 -1
- package/dist/{chunk-HIZXUWWC.js → chunk-VTTNIZJL.js} +21 -2
- package/dist/{chunk-ELMV6QU2.js → chunk-YP7I25SL.js} +2 -2
- package/dist/{chunk-KQ6TDRPS.js → chunk-YYRQCQPZ.js} +425 -173
- package/dist/{ci-workflow-WAG4TOV6.js → ci-workflow-3JNDZQYD.js} +4 -4
- package/dist/{dist-HVJUGPSY.js → dist-E3SAAHCM.js} +23 -1
- package/dist/{dist-TKHVYUWZ.js → dist-OHDQBTSO.js} +43 -3
- package/dist/{docs-4WPBYSCF.js → docs-5RYMDHN3.js} +5 -5
- package/dist/{engine-5BXDQT5T.js → engine-KZ3PPUYE.js} +4 -4
- package/dist/{entropy-7FIUFACI.js → entropy-DQTAPSSE.js} +4 -4
- package/dist/{feedback-ER2HRTFD.js → feedback-WH6XPQJS.js} +1 -1
- package/dist/{generate-agent-definitions-5PV4O3BD.js → generate-agent-definitions-SZA4QIHN.js} +5 -5
- package/dist/index.d.ts +47 -0
- package/dist/index.js +24 -24
- package/dist/{loader-6RTEYN5Q.js → loader-BNKGM23C.js} +4 -4
- package/dist/{mcp-QWSDEYMN.js → mcp-GZH4EYGD.js} +15 -15
- package/dist/{performance-AZJAT35R.js → performance-54TMJOEU.js} +5 -5
- package/dist/{review-pipeline-4VF73V4V.js → review-pipeline-OTDDVPNY.js} +4 -4
- package/dist/{runtime-SAZGLILX.js → runtime-W5THSNAL.js} +4 -4
- package/dist/{security-ZWRABJNE.js → security-27HW7CYT.js} +1 -1
- package/dist/{tool-tiers-LTQNNAFU.js → tool-tiers-B7JC2XC3.js} +3 -1
- package/dist/{validate-AFJVI4OX.js → validate-QRVCD4GP.js} +5 -5
- package/dist/{validate-cross-check-7PO7CBVT.js → validate-cross-check-BUAGBAPO.js} +4 -4
- package/package.json +6 -6
|
@@ -72,7 +72,7 @@ async function handleAssessProject(input) {
|
|
|
72
72
|
let validateResult = null;
|
|
73
73
|
if (checksToRun.has("validate")) {
|
|
74
74
|
try {
|
|
75
|
-
const { handleValidateProject } = await import("./validate-
|
|
75
|
+
const { handleValidateProject } = await import("./validate-QRVCD4GP.js");
|
|
76
76
|
const result = await handleValidateProject({ path: projectPath });
|
|
77
77
|
const out = parseToolResponse(result, "validate");
|
|
78
78
|
if ("error" in out) {
|
|
@@ -101,7 +101,7 @@ async function handleAssessProject(input) {
|
|
|
101
101
|
parallelChecks.push(
|
|
102
102
|
(async () => {
|
|
103
103
|
try {
|
|
104
|
-
const { handleCheckDependencies } = await import("./architecture-
|
|
104
|
+
const { handleCheckDependencies } = await import("./architecture-CXAVNB5X.js");
|
|
105
105
|
const result = await handleCheckDependencies({ path: projectPath });
|
|
106
106
|
const out = parseToolResponse(result, "deps");
|
|
107
107
|
if ("error" in out) return out.error;
|
|
@@ -129,7 +129,7 @@ async function handleAssessProject(input) {
|
|
|
129
129
|
parallelChecks.push(
|
|
130
130
|
(async () => {
|
|
131
131
|
try {
|
|
132
|
-
const { handleCheckDocs } = await import("./docs-
|
|
132
|
+
const { handleCheckDocs } = await import("./docs-5RYMDHN3.js");
|
|
133
133
|
const result = await handleCheckDocs({ path: projectPath, scope: "coverage" });
|
|
134
134
|
const out = parseToolResponse(result, "docs");
|
|
135
135
|
if ("error" in out) return out.error;
|
|
@@ -157,7 +157,7 @@ async function handleAssessProject(input) {
|
|
|
157
157
|
parallelChecks.push(
|
|
158
158
|
(async () => {
|
|
159
159
|
try {
|
|
160
|
-
const { handleDetectEntropy } = await import("./entropy-
|
|
160
|
+
const { handleDetectEntropy } = await import("./entropy-DQTAPSSE.js");
|
|
161
161
|
const result = await handleDetectEntropy({ path: projectPath, type: "all" });
|
|
162
162
|
const out = parseToolResponse(result, "entropy");
|
|
163
163
|
if ("error" in out) return out.error;
|
|
@@ -188,7 +188,7 @@ async function handleAssessProject(input) {
|
|
|
188
188
|
parallelChecks.push(
|
|
189
189
|
(async () => {
|
|
190
190
|
try {
|
|
191
|
-
const { handleRunSecurityScan } = await import("./security-
|
|
191
|
+
const { handleRunSecurityScan } = await import("./security-27HW7CYT.js");
|
|
192
192
|
const result = await handleRunSecurityScan({ path: projectPath });
|
|
193
193
|
const out = parseToolResponse(result, "security");
|
|
194
194
|
if ("error" in out) return out.error;
|
|
@@ -221,7 +221,7 @@ async function handleAssessProject(input) {
|
|
|
221
221
|
parallelChecks.push(
|
|
222
222
|
(async () => {
|
|
223
223
|
try {
|
|
224
|
-
const { handleCheckPerformance } = await import("./performance-
|
|
224
|
+
const { handleCheckPerformance } = await import("./performance-54TMJOEU.js");
|
|
225
225
|
const result = await handleCheckPerformance({ path: projectPath });
|
|
226
226
|
if ("isError" in result && result.isError) {
|
|
227
227
|
const msg = result.content[0]?.text ?? "Performance check failed";
|
|
@@ -8,6 +8,7 @@ import { z as z2 } from "zod";
|
|
|
8
8
|
import { z as z3 } from "zod";
|
|
9
9
|
import { z as z4 } from "zod";
|
|
10
10
|
import { z as z5 } from "zod";
|
|
11
|
+
import { z as z6 } from "zod";
|
|
11
12
|
function Ok(value) {
|
|
12
13
|
return { ok: true, value };
|
|
13
14
|
}
|
|
@@ -20,7 +21,7 @@ function isOk(result) {
|
|
|
20
21
|
function isErr(result) {
|
|
21
22
|
return result.ok === false;
|
|
22
23
|
}
|
|
23
|
-
var STANDARD_COGNITIVE_MODES, DEFAULT_SKILL_CONTEXT_BUDGET, SESSION_SECTION_NAMES, TrajectoryMetadataSchema, PromptCacheStatsSchema, OTLPKeyValueSchema, OTLPSpanSchema, TokenScopeSchema, BridgeKindSchema, AuthTokenSchema, AuthTokenPublicSchema, AuthAuditEntrySchema, WebhookSubscriptionSchema, WebhookSubscriptionPublicSchema, GatewayEventSchema, WebhookDeliveryStatusSchema, WebhookDeliverySchema, INDEXED_FILE_KINDS, SessionSummarySchema, INSIGHTS_KEYS, SESSIONS_DEFAULTS, NotificationSinkKindSchema, NotificationSeveritySchema, NotificationActionSchema, NotificationEnvelopeSchema, NotificationSinkConfigSchema, NotificationsConfigSchema, NotificationDeliveryResultSchema;
|
|
24
|
+
var STANDARD_COGNITIVE_MODES, DEFAULT_SKILL_CONTEXT_BUDGET, SESSION_SECTION_NAMES, TrajectoryMetadataSchema, PromptCacheStatsSchema, OTLPKeyValueSchema, OTLPSpanSchema, TokenScopeSchema, BridgeKindSchema, AuthTokenSchema, AuthTokenPublicSchema, AuthAuditEntrySchema, WebhookSubscriptionSchema, WebhookSubscriptionPublicSchema, GatewayEventSchema, WebhookDeliveryStatusSchema, WebhookDeliverySchema, INDEXED_FILE_KINDS, SessionSummarySchema, INSIGHTS_KEYS, SESSIONS_DEFAULTS, NotificationSinkKindSchema, NotificationSeveritySchema, NotificationActionSchema, NotificationEnvelopeSchema, NotificationSinkConfigSchema, NotificationsConfigSchema, NotificationDeliveryResultSchema, SkillProvenanceSchema, ProposalKindSchema, ProposalStatusSchema, ProposalGateFindingSchema, ProposalGateSchema, ProposalDecisionSchema, ProposalContentSchema, ProposalSourceSchema, SkillProposalSchema, EmitSkillProposalInputSchema, EditProposalInputSchema;
|
|
24
25
|
var init_dist = __esm({
|
|
25
26
|
"../types/dist/index.mjs"() {
|
|
26
27
|
STANDARD_COGNITIVE_MODES = [
|
|
@@ -102,7 +103,8 @@ var init_dist = __esm({
|
|
|
102
103
|
"resolve-interaction",
|
|
103
104
|
"subscribe-webhook",
|
|
104
105
|
"modify-roadmap",
|
|
105
|
-
"read-telemetry"
|
|
106
|
+
"read-telemetry",
|
|
107
|
+
"manage-proposals"
|
|
106
108
|
]);
|
|
107
109
|
BridgeKindSchema = z2.enum(["slack", "discord", "github-app", "custom"]);
|
|
108
110
|
AuthTokenSchema = z2.object({
|
|
@@ -224,6 +226,112 @@ var init_dist = __esm({
|
|
|
224
226
|
httpStatus: z5.number().int().optional()
|
|
225
227
|
})
|
|
226
228
|
]);
|
|
229
|
+
SkillProvenanceSchema = z6.enum(["community", "agent-proposed", "user-authored"]);
|
|
230
|
+
ProposalKindSchema = z6.enum(["new-skill", "refinement"]);
|
|
231
|
+
ProposalStatusSchema = z6.enum([
|
|
232
|
+
"open",
|
|
233
|
+
"gate-running",
|
|
234
|
+
"gate-failed",
|
|
235
|
+
"approved",
|
|
236
|
+
"rejected"
|
|
237
|
+
]);
|
|
238
|
+
ProposalGateFindingSchema = z6.object({
|
|
239
|
+
severity: z6.enum(["error", "warning"]),
|
|
240
|
+
title: z6.string(),
|
|
241
|
+
detail: z6.string()
|
|
242
|
+
});
|
|
243
|
+
ProposalGateSchema = z6.object({
|
|
244
|
+
lastRunAt: z6.string().datetime().optional(),
|
|
245
|
+
findings: z6.array(ProposalGateFindingSchema).optional()
|
|
246
|
+
});
|
|
247
|
+
ProposalDecisionSchema = z6.object({
|
|
248
|
+
decidedAt: z6.string().datetime(),
|
|
249
|
+
decidedBy: z6.string(),
|
|
250
|
+
action: z6.enum(["approved", "rejected"]),
|
|
251
|
+
reason: z6.string().optional()
|
|
252
|
+
});
|
|
253
|
+
ProposalContentSchema = z6.object({
|
|
254
|
+
name: z6.string().regex(/^[a-z][a-z0-9-]*$/).max(64),
|
|
255
|
+
description: z6.string().min(20).max(280),
|
|
256
|
+
skillYaml: z6.string().optional(),
|
|
257
|
+
skillMd: z6.string().optional(),
|
|
258
|
+
diff: z6.string().optional()
|
|
259
|
+
}).strict();
|
|
260
|
+
ProposalSourceSchema = z6.object({
|
|
261
|
+
sessionId: z6.string().optional(),
|
|
262
|
+
taskId: z6.string().optional(),
|
|
263
|
+
justification: z6.string().min(20).max(2e3)
|
|
264
|
+
});
|
|
265
|
+
SkillProposalSchema = z6.object({
|
|
266
|
+
id: z6.string().min(1),
|
|
267
|
+
createdAt: z6.string().datetime(),
|
|
268
|
+
kind: ProposalKindSchema,
|
|
269
|
+
targetSkill: z6.string().optional(),
|
|
270
|
+
proposedBy: z6.string().min(1),
|
|
271
|
+
source: ProposalSourceSchema,
|
|
272
|
+
content: ProposalContentSchema,
|
|
273
|
+
status: ProposalStatusSchema,
|
|
274
|
+
gate: ProposalGateSchema.optional(),
|
|
275
|
+
decision: ProposalDecisionSchema.optional()
|
|
276
|
+
}).superRefine((val, ctx) => {
|
|
277
|
+
if (val.kind === "new-skill") {
|
|
278
|
+
if (!val.content.skillYaml || !val.content.skillMd) {
|
|
279
|
+
ctx.addIssue({
|
|
280
|
+
code: z6.ZodIssueCode.custom,
|
|
281
|
+
path: ["content"],
|
|
282
|
+
message: "new-skill proposals require skillYaml and skillMd"
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
if (val.targetSkill) {
|
|
286
|
+
ctx.addIssue({
|
|
287
|
+
code: z6.ZodIssueCode.custom,
|
|
288
|
+
path: ["targetSkill"],
|
|
289
|
+
message: "targetSkill is forbidden on new-skill proposals"
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
if (val.content.diff) {
|
|
293
|
+
ctx.addIssue({
|
|
294
|
+
code: z6.ZodIssueCode.custom,
|
|
295
|
+
path: ["content", "diff"],
|
|
296
|
+
message: "diff is forbidden on new-skill proposals"
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
} else if (val.kind === "refinement") {
|
|
300
|
+
if (!val.targetSkill) {
|
|
301
|
+
ctx.addIssue({
|
|
302
|
+
code: z6.ZodIssueCode.custom,
|
|
303
|
+
path: ["targetSkill"],
|
|
304
|
+
message: "refinement proposals require targetSkill"
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
if (!val.content.diff) {
|
|
308
|
+
ctx.addIssue({
|
|
309
|
+
code: z6.ZodIssueCode.custom,
|
|
310
|
+
path: ["content", "diff"],
|
|
311
|
+
message: "refinement proposals require a unified diff"
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
if (val.content.skillYaml || val.content.skillMd) {
|
|
315
|
+
ctx.addIssue({
|
|
316
|
+
code: z6.ZodIssueCode.custom,
|
|
317
|
+
path: ["content"],
|
|
318
|
+
message: "skillYaml/skillMd are forbidden on refinement proposals (use diff)"
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
EmitSkillProposalInputSchema = z6.object({
|
|
324
|
+
kind: ProposalKindSchema,
|
|
325
|
+
targetSkill: z6.string().optional(),
|
|
326
|
+
proposedBy: z6.string().min(1).max(120),
|
|
327
|
+
justification: z6.string().min(20).max(2e3),
|
|
328
|
+
sessionId: z6.string().optional(),
|
|
329
|
+
taskId: z6.string().optional(),
|
|
330
|
+
content: ProposalContentSchema
|
|
331
|
+
});
|
|
332
|
+
EditProposalInputSchema = z6.object({
|
|
333
|
+
content: ProposalContentSchema.partial()
|
|
334
|
+
});
|
|
227
335
|
}
|
|
228
336
|
});
|
|
229
337
|
|
|
@@ -260,5 +368,16 @@ export {
|
|
|
260
368
|
NotificationSinkConfigSchema,
|
|
261
369
|
NotificationsConfigSchema,
|
|
262
370
|
NotificationDeliveryResultSchema,
|
|
371
|
+
SkillProvenanceSchema,
|
|
372
|
+
ProposalKindSchema,
|
|
373
|
+
ProposalStatusSchema,
|
|
374
|
+
ProposalGateFindingSchema,
|
|
375
|
+
ProposalGateSchema,
|
|
376
|
+
ProposalDecisionSchema,
|
|
377
|
+
ProposalContentSchema,
|
|
378
|
+
ProposalSourceSchema,
|
|
379
|
+
SkillProposalSchema,
|
|
380
|
+
EmitSkillProposalInputSchema,
|
|
381
|
+
EditProposalInputSchema,
|
|
263
382
|
init_dist
|
|
264
383
|
};
|