@agentworkforce/persona-kit 2.1.3 → 3.0.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.
Files changed (43) hide show
  1. package/dist/constants.d.ts +0 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +0 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/execute.test.js +8 -19
  6. package/dist/execute.test.js.map +1 -1
  7. package/dist/index.d.ts +4 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +4 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.test.js +14 -30
  12. package/dist/index.test.js.map +1 -1
  13. package/dist/interactive-spec.d.ts.map +1 -1
  14. package/dist/interactive-spec.js +20 -10
  15. package/dist/interactive-spec.js.map +1 -1
  16. package/dist/interactive-spec.test.js +20 -0
  17. package/dist/interactive-spec.test.js.map +1 -1
  18. package/dist/parse.d.ts +14 -17
  19. package/dist/parse.d.ts.map +1 -1
  20. package/dist/parse.js +358 -97
  21. package/dist/parse.js.map +1 -1
  22. package/dist/parse.test.js +218 -21
  23. package/dist/parse.test.js.map +1 -1
  24. package/dist/plan.js +6 -6
  25. package/dist/plan.js.map +1 -1
  26. package/dist/plan.test.js +16 -37
  27. package/dist/plan.test.js.map +1 -1
  28. package/dist/sidecars.test.js +4 -7
  29. package/dist/sidecars.test.js.map +1 -1
  30. package/dist/skills.d.ts +1 -1
  31. package/dist/skills.js +2 -2
  32. package/dist/skills.js.map +1 -1
  33. package/dist/triggers.d.ts +43 -0
  34. package/dist/triggers.d.ts.map +1 -0
  35. package/dist/triggers.js +74 -0
  36. package/dist/triggers.js.map +1 -0
  37. package/dist/triggers.test.d.ts +2 -0
  38. package/dist/triggers.test.d.ts.map +1 -0
  39. package/dist/triggers.test.js +68 -0
  40. package/dist/triggers.test.js.map +1 -0
  41. package/dist/types.d.ts +172 -45
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +3 -2
package/dist/parse.js CHANGED
@@ -1,13 +1,10 @@
1
- import { CODEX_APPROVAL_POLICIES, CODEX_SANDBOX_MODES, HARNESS_VALUES, PERMISSION_MODES, PERSONA_INTENTS, PERSONA_TAGS, PERSONA_TIERS, SIDECAR_MD_MODES } from './constants.js';
1
+ import { CODEX_APPROVAL_POLICIES, CODEX_SANDBOX_MODES, HARNESS_VALUES, PERMISSION_MODES, PERSONA_INTENTS, PERSONA_TAGS, SIDECAR_MD_MODES } from './constants.js';
2
2
  export function isObject(value) {
3
3
  return typeof value === 'object' && value !== null;
4
4
  }
5
5
  export function isHarness(value) {
6
6
  return typeof value === 'string' && HARNESS_VALUES.includes(value);
7
7
  }
8
- export function isTier(value) {
9
- return typeof value === 'string' && PERSONA_TIERS.includes(value);
10
- }
11
8
  export function isIntent(value) {
12
9
  return typeof value === 'string' && PERSONA_INTENTS.includes(value);
13
10
  }
@@ -50,7 +47,7 @@ export function parseHarnessSettings(value, context) {
50
47
  if (!isObject(value)) {
51
48
  throw new Error(`${context} must be an object`);
52
49
  }
53
- const { reasoning, timeoutSeconds, sandboxMode, approvalPolicy, workspaceWriteNetworkAccess, webSearch } = value;
50
+ const { reasoning, timeoutSeconds, sandboxMode, approvalPolicy, workspaceWriteNetworkAccess, webSearch, dangerouslyBypassApprovalsAndSandbox } = value;
54
51
  if (!['low', 'medium', 'high'].includes(String(reasoning))) {
55
52
  throw new Error(`${context}.reasoning must be low|medium|high`);
56
53
  }
@@ -85,55 +82,27 @@ export function parseHarnessSettings(value, context) {
85
82
  }
86
83
  out.webSearch = webSearch;
87
84
  }
88
- return out;
89
- }
90
- export function parseRuntime(value, context) {
91
- if (!isObject(value)) {
92
- throw new Error(`${context} must be an object`);
93
- }
94
- const { harness, model, systemPrompt, harnessSettings, claudeMd, claudeMdMode, agentsMd, agentsMdMode, claudeMdContent, agentsMdContent } = value;
95
- if (!isHarness(harness)) {
96
- throw new Error(`${context}.harness must be one of: ${HARNESS_VALUES.join(', ')}`);
97
- }
98
- if (typeof model !== 'string' || !model.trim()) {
99
- throw new Error(`${context}.model must be a non-empty string`);
100
- }
101
- if (typeof systemPrompt !== 'string' || !systemPrompt.trim()) {
102
- throw new Error(`${context}.systemPrompt must be a non-empty string`);
103
- }
104
- const parsedHarnessSettings = parseHarnessSettings(harnessSettings, `${context}.harnessSettings`);
105
- if (claudeMd !== undefined)
106
- assertSidecarPath(claudeMd, `${context}.claudeMd`);
107
- if (agentsMd !== undefined)
108
- assertSidecarPath(agentsMd, `${context}.agentsMd`);
109
- if (claudeMdMode !== undefined && !isSidecarMode(claudeMdMode)) {
110
- throw new Error(`${context}.claudeMdMode must be one of: ${SIDECAR_MD_MODES.join(', ')}`);
111
- }
112
- if (agentsMdMode !== undefined && !isSidecarMode(agentsMdMode)) {
113
- throw new Error(`${context}.agentsMdMode must be one of: ${SIDECAR_MD_MODES.join(', ')}`);
114
- }
115
- // Mode is allowed without a same-level path: a tier may declare just
116
- // `claudeMdMode` and inherit the path from the spec top-level (or vice
117
- // versa). The cascade validates that a path/content actually exists at
118
- // runtime — a stranded mode with no path anywhere becomes a no-op.
119
- if (claudeMdContent !== undefined && (typeof claudeMdContent !== 'string' || !claudeMdContent.length)) {
120
- throw new Error(`${context}.claudeMdContent must be a non-empty string`);
121
- }
122
- if (agentsMdContent !== undefined && (typeof agentsMdContent !== 'string' || !agentsMdContent.length)) {
123
- throw new Error(`${context}.agentsMdContent must be a non-empty string`);
85
+ if (dangerouslyBypassApprovalsAndSandbox !== undefined) {
86
+ if (typeof dangerouslyBypassApprovalsAndSandbox !== 'boolean') {
87
+ throw new Error(`${context}.dangerouslyBypassApprovalsAndSandbox must be a boolean`);
88
+ }
89
+ // Reject mixed-shape configs whenever the field is *present*, not only
90
+ // when true. Co-declaring sandboxMode/approvalPolicy/workspaceWriteNetworkAccess
91
+ // with an explicit `false` is still a contradictory shape the two-flag
92
+ // form and the single-flag form are mutually exclusive concepts.
93
+ const conflicts = [];
94
+ if (sandboxMode !== undefined)
95
+ conflicts.push('sandboxMode');
96
+ if (approvalPolicy !== undefined)
97
+ conflicts.push('approvalPolicy');
98
+ if (workspaceWriteNetworkAccess !== undefined)
99
+ conflicts.push('workspaceWriteNetworkAccess');
100
+ if (conflicts.length > 0) {
101
+ throw new Error(`${context}.dangerouslyBypassApprovalsAndSandbox is mutually exclusive with: ${conflicts.join(', ')}`);
102
+ }
103
+ out.dangerouslyBypassApprovalsAndSandbox = dangerouslyBypassApprovalsAndSandbox;
124
104
  }
125
- return {
126
- harness,
127
- model,
128
- systemPrompt,
129
- harnessSettings: parsedHarnessSettings,
130
- ...(typeof claudeMd === 'string' ? { claudeMd } : {}),
131
- ...(claudeMdMode ? { claudeMdMode: claudeMdMode } : {}),
132
- ...(typeof agentsMd === 'string' ? { agentsMd } : {}),
133
- ...(agentsMdMode ? { agentsMdMode: agentsMdMode } : {}),
134
- ...(typeof claudeMdContent === 'string' ? { claudeMdContent } : {}),
135
- ...(typeof agentsMdContent === 'string' ? { agentsMdContent } : {})
136
- };
105
+ return out;
137
106
  }
138
107
  export function parseSkills(value, context) {
139
108
  if (value === undefined) {
@@ -332,11 +301,302 @@ export function parseMcpServers(value, context) {
332
301
  }
333
302
  return out;
334
303
  }
304
+ const MEMORY_SCOPE_VALUES = [
305
+ 'session',
306
+ 'user',
307
+ 'workspace',
308
+ 'org',
309
+ 'object'
310
+ ];
311
+ const TRAIT_LEVEL_VALUES = ['low', 'medium', 'high'];
312
+ const TRAIT_RISK_VALUES = ['conservative', 'balanced', 'aggressive'];
313
+ const ONEVENT_EXT_RE = /\.(?:ts|tsx|mts|cts|js|mjs|cjs)$/i;
314
+ // Standard 5-field cron: minute hour day-of-month month day-of-week. Each
315
+ // field is `*`, an integer, a range (`1-5`), a list (`1,3,5`), or a step
316
+ // like every-N (`*` slash `15`) or `5-25` slash `5`. Names like `MON` / `JAN`
317
+ // are deliberately not allowed at parse time; the runtime is the source of
318
+ // truth for what schedulers accept, and unknown shapes should propagate as
319
+ // runtime errors rather than silently passing through here.
320
+ const CRON_FIELD_RE = /^(?:\*|(?:\d+(?:-\d+)?)(?:,\d+(?:-\d+)?)*)(?:\/\d+)?$/;
321
+ // Windows absolute path shapes the parser must reject in addition to
322
+ // the POSIX "/abs" form. Drive-letter (`C:\…`, `C:/…`) and UNC
323
+ // (`\\server\share`, `//server/share`) forms both qualify as absolute
324
+ // for our purposes — personas need to stay portable, so onEvent paths
325
+ // must be relative to the persona JSON's directory.
326
+ const WIN_ABSOLUTE_RE = /^(?:[A-Za-z]:[\\/]|[\\/]{2})/;
327
+ function assertOnEventPath(value, context) {
328
+ if (typeof value !== 'string' || !value.trim()) {
329
+ throw new Error(`${context} must be a non-empty string`);
330
+ }
331
+ if (value.startsWith('/') || WIN_ABSOLUTE_RE.test(value)) {
332
+ throw new Error(`${context} must be a relative POSIX path; got absolute "${value}"`);
333
+ }
334
+ const segments = value.split(/[\\/]+/);
335
+ if (segments.some((s) => s === '..')) {
336
+ throw new Error(`${context} must not contain ".." segments`);
337
+ }
338
+ if (!ONEVENT_EXT_RE.test(value)) {
339
+ throw new Error(`${context} must point at a .ts/.tsx/.mts/.cts/.js/.mjs/.cjs file; got "${value}"`);
340
+ }
341
+ return value;
342
+ }
343
+ function assertCronExpression(value, context) {
344
+ const fields = value.trim().split(/\s+/);
345
+ if (fields.length !== 5) {
346
+ throw new Error(`${context} must be a 5-field cron expression; got ${fields.length} field(s)`);
347
+ }
348
+ for (let i = 0; i < fields.length; i += 1) {
349
+ const field = fields[i];
350
+ if (!CRON_FIELD_RE.test(field)) {
351
+ throw new Error(`${context} field ${i + 1} is not a valid cron token: "${field}"`);
352
+ }
353
+ }
354
+ }
355
+ export function parseIntegrationTrigger(value, context) {
356
+ if (!isObject(value)) {
357
+ throw new Error(`${context} must be an object`);
358
+ }
359
+ const { on, match, where } = value;
360
+ if (typeof on !== 'string' || !on.trim()) {
361
+ throw new Error(`${context}.on must be a non-empty string`);
362
+ }
363
+ if (match !== undefined && (typeof match !== 'string' || !match.trim())) {
364
+ throw new Error(`${context}.match must be a non-empty string if provided`);
365
+ }
366
+ if (where !== undefined && (typeof where !== 'string' || !where.trim())) {
367
+ throw new Error(`${context}.where must be a non-empty string if provided`);
368
+ }
369
+ return {
370
+ on,
371
+ ...(typeof match === 'string' ? { match } : {}),
372
+ ...(typeof where === 'string' ? { where } : {})
373
+ };
374
+ }
375
+ export function parseIntegrationConfig(value, context) {
376
+ if (!isObject(value)) {
377
+ throw new Error(`${context} must be an object`);
378
+ }
379
+ const { scope, triggers } = value;
380
+ const out = {};
381
+ if (scope !== undefined) {
382
+ const parsedScope = parseStringMap(scope, `${context}.scope`);
383
+ if (parsedScope && Object.keys(parsedScope).length > 0) {
384
+ out.scope = parsedScope;
385
+ }
386
+ }
387
+ if (triggers !== undefined) {
388
+ if (!Array.isArray(triggers)) {
389
+ throw new Error(`${context}.triggers must be an array if provided`);
390
+ }
391
+ if (triggers.length === 0) {
392
+ throw new Error(`${context}.triggers must contain at least one entry if provided (omit the field to declare an integration with no event triggers)`);
393
+ }
394
+ out.triggers = triggers.map((entry, idx) => parseIntegrationTrigger(entry, `${context}.triggers[${idx}]`));
395
+ }
396
+ return out;
397
+ }
398
+ export function parseIntegrations(value, context) {
399
+ if (value === undefined)
400
+ return undefined;
401
+ if (!isObject(value)) {
402
+ throw new Error(`${context} must be an object if provided`);
403
+ }
404
+ const out = {};
405
+ for (const [provider, raw] of Object.entries(value)) {
406
+ if (!provider.trim()) {
407
+ throw new Error(`${context} integration keys must be non-empty strings`);
408
+ }
409
+ out[provider] = parseIntegrationConfig(raw, `${context}.${provider}`);
410
+ }
411
+ return Object.keys(out).length > 0 ? out : undefined;
412
+ }
413
+ export function parseSchedules(value, context) {
414
+ if (value === undefined)
415
+ return undefined;
416
+ if (!Array.isArray(value)) {
417
+ throw new Error(`${context} must be an array if provided`);
418
+ }
419
+ if (value.length === 0)
420
+ return undefined;
421
+ // Trim every field before validating + deduping so stray whitespace
422
+ // does not leak into schedule ids (used as `event.name`) or bypass
423
+ // the duplicate-name guard (e.g. `"weekly"` vs `"weekly "`).
424
+ const seenNames = new Set();
425
+ const out = [];
426
+ for (const [idx, entry] of value.entries()) {
427
+ const entryContext = `${context}[${idx}]`;
428
+ if (!isObject(entry)) {
429
+ throw new Error(`${entryContext} must be an object`);
430
+ }
431
+ const { name, cron, tz } = entry;
432
+ if (typeof name !== 'string' || !name.trim()) {
433
+ throw new Error(`${entryContext}.name must be a non-empty string`);
434
+ }
435
+ const trimmedName = name.trim();
436
+ if (seenNames.has(trimmedName)) {
437
+ throw new Error(`${entryContext}.name "${trimmedName}" duplicates an earlier schedule`);
438
+ }
439
+ seenNames.add(trimmedName);
440
+ if (typeof cron !== 'string' || !cron.trim()) {
441
+ throw new Error(`${entryContext}.cron must be a non-empty string`);
442
+ }
443
+ const trimmedCron = cron.trim();
444
+ assertCronExpression(trimmedCron, `${entryContext}.cron`);
445
+ if (tz !== undefined && (typeof tz !== 'string' || !tz.trim())) {
446
+ throw new Error(`${entryContext}.tz must be a non-empty string if provided`);
447
+ }
448
+ out.push({
449
+ name: trimmedName,
450
+ cron: trimmedCron,
451
+ ...(typeof tz === 'string' ? { tz: tz.trim() } : {})
452
+ });
453
+ }
454
+ return out;
455
+ }
456
+ export function parseSandbox(value, context) {
457
+ if (value === undefined)
458
+ return undefined;
459
+ if (typeof value === 'boolean')
460
+ return value;
461
+ if (!isObject(value)) {
462
+ throw new Error(`${context} must be a boolean or an object if provided`);
463
+ }
464
+ const { enabled, timeoutSeconds, env } = value;
465
+ const out = {};
466
+ if (enabled !== undefined) {
467
+ if (typeof enabled !== 'boolean') {
468
+ throw new Error(`${context}.enabled must be a boolean if provided`);
469
+ }
470
+ out.enabled = enabled;
471
+ }
472
+ if (timeoutSeconds !== undefined) {
473
+ if (typeof timeoutSeconds !== 'number' ||
474
+ !Number.isFinite(timeoutSeconds) ||
475
+ timeoutSeconds <= 0) {
476
+ throw new Error(`${context}.timeoutSeconds must be a positive number if provided`);
477
+ }
478
+ out.timeoutSeconds = timeoutSeconds;
479
+ }
480
+ if (env !== undefined) {
481
+ const parsedEnv = parseStringMap(env, `${context}.env`);
482
+ if (parsedEnv && Object.keys(parsedEnv).length > 0) {
483
+ out.env = parsedEnv;
484
+ }
485
+ }
486
+ return out;
487
+ }
488
+ export function parseMemory(value, context) {
489
+ if (value === undefined)
490
+ return undefined;
491
+ if (typeof value === 'boolean')
492
+ return value;
493
+ if (!isObject(value)) {
494
+ throw new Error(`${context} must be a boolean or an object if provided`);
495
+ }
496
+ const { enabled, scopes, ttlDays, autoPromote, dedupMs } = value;
497
+ const out = {};
498
+ if (enabled !== undefined) {
499
+ if (typeof enabled !== 'boolean') {
500
+ throw new Error(`${context}.enabled must be a boolean if provided`);
501
+ }
502
+ out.enabled = enabled;
503
+ }
504
+ if (scopes !== undefined) {
505
+ if (!Array.isArray(scopes) || scopes.length === 0) {
506
+ throw new Error(`${context}.scopes must be a non-empty array of memory scopes if provided`);
507
+ }
508
+ const parsedScopes = [];
509
+ for (const [idx, entry] of scopes.entries()) {
510
+ if (typeof entry !== 'string' || !MEMORY_SCOPE_VALUES.includes(entry)) {
511
+ throw new Error(`${context}.scopes[${idx}] must be one of: ${MEMORY_SCOPE_VALUES.join(', ')}`);
512
+ }
513
+ const scope = entry;
514
+ if (!parsedScopes.includes(scope))
515
+ parsedScopes.push(scope);
516
+ }
517
+ out.scopes = parsedScopes;
518
+ }
519
+ if (ttlDays !== undefined) {
520
+ if (typeof ttlDays !== 'number' || !Number.isFinite(ttlDays) || ttlDays <= 0) {
521
+ throw new Error(`${context}.ttlDays must be a positive number if provided`);
522
+ }
523
+ out.ttlDays = ttlDays;
524
+ }
525
+ if (autoPromote !== undefined) {
526
+ if (typeof autoPromote !== 'boolean') {
527
+ throw new Error(`${context}.autoPromote must be a boolean if provided`);
528
+ }
529
+ out.autoPromote = autoPromote;
530
+ }
531
+ if (dedupMs !== undefined) {
532
+ if (typeof dedupMs !== 'number' || !Number.isFinite(dedupMs) || dedupMs < 0) {
533
+ throw new Error(`${context}.dedupMs must be a non-negative number if provided`);
534
+ }
535
+ out.dedupMs = dedupMs;
536
+ }
537
+ return out;
538
+ }
539
+ export function parseTraits(value, context) {
540
+ if (value === undefined)
541
+ return undefined;
542
+ if (!isObject(value)) {
543
+ throw new Error(`${context} must be an object if provided`);
544
+ }
545
+ const { voice, formality, proactivity, riskPosture, domain, vocabulary, preferMarkdown } = value;
546
+ const out = {};
547
+ if (voice !== undefined) {
548
+ if (typeof voice !== 'string' || !voice.trim()) {
549
+ throw new Error(`${context}.voice must be a non-empty string if provided`);
550
+ }
551
+ out.voice = voice;
552
+ }
553
+ if (formality !== undefined) {
554
+ if (typeof formality !== 'string' || !TRAIT_LEVEL_VALUES.includes(formality)) {
555
+ throw new Error(`${context}.formality must be one of: ${TRAIT_LEVEL_VALUES.join(', ')}`);
556
+ }
557
+ out.formality = formality;
558
+ }
559
+ if (proactivity !== undefined) {
560
+ if (typeof proactivity !== 'string' || !TRAIT_LEVEL_VALUES.includes(proactivity)) {
561
+ throw new Error(`${context}.proactivity must be one of: ${TRAIT_LEVEL_VALUES.join(', ')}`);
562
+ }
563
+ out.proactivity = proactivity;
564
+ }
565
+ if (riskPosture !== undefined) {
566
+ if (typeof riskPosture !== 'string' || !TRAIT_RISK_VALUES.includes(riskPosture)) {
567
+ throw new Error(`${context}.riskPosture must be one of: ${TRAIT_RISK_VALUES.join(', ')}`);
568
+ }
569
+ out.riskPosture = riskPosture;
570
+ }
571
+ if (domain !== undefined) {
572
+ if (typeof domain !== 'string' || !domain.trim()) {
573
+ throw new Error(`${context}.domain must be a non-empty string if provided`);
574
+ }
575
+ out.domain = domain;
576
+ }
577
+ if (vocabulary !== undefined) {
578
+ const parsed = parseStringList(vocabulary, `${context}.vocabulary`);
579
+ if (parsed)
580
+ out.vocabulary = parsed;
581
+ }
582
+ if (preferMarkdown !== undefined) {
583
+ if (typeof preferMarkdown !== 'boolean') {
584
+ throw new Error(`${context}.preferMarkdown must be a boolean if provided`);
585
+ }
586
+ out.preferMarkdown = preferMarkdown;
587
+ }
588
+ return Object.keys(out).length > 0 ? out : undefined;
589
+ }
590
+ export function parseOnEvent(value, context) {
591
+ if (value === undefined)
592
+ return undefined;
593
+ return assertOnEventPath(value, context);
594
+ }
335
595
  export function parsePersonaSpec(value, expectedIntent) {
336
596
  if (!isObject(value)) {
337
597
  throw new Error(`persona[${expectedIntent}] must be an object`);
338
598
  }
339
- const { id, intent, tags, description, tiers, defaultTier, skills, inputs, env, mcpServers, permissions, mount, claudeMd, claudeMdMode, agentsMd, agentsMdMode, claudeMdContent, agentsMdContent } = value;
599
+ const { id, intent, tags, description, harness, model, systemPrompt, harnessSettings, skills, inputs, env, mcpServers, permissions, mount, claudeMd, claudeMdMode, agentsMd, agentsMdMode, claudeMdContent, agentsMdContent, cloud, useSubscription, integrations, schedules, sandbox, memory, traits, onEvent } = value;
340
600
  if (typeof id !== 'string' || !id.trim()) {
341
601
  throw new Error(`persona[${expectedIntent}].id must be a non-empty string`);
342
602
  }
@@ -350,20 +610,17 @@ export function parsePersonaSpec(value, expectedIntent) {
350
610
  if (typeof description !== 'string' || !description.trim()) {
351
611
  throw new Error(`persona[${expectedIntent}].description must be a non-empty string`);
352
612
  }
353
- if (!isObject(tiers)) {
354
- throw new Error(`persona[${expectedIntent}].tiers must be an object`);
613
+ if (!isHarness(harness)) {
614
+ throw new Error(`persona[${expectedIntent}].harness must be one of: ${HARNESS_VALUES.join(', ')}`);
355
615
  }
356
- const parsedTiers = {};
357
- for (const tier of PERSONA_TIERS) {
358
- parsedTiers[tier] = parseRuntime(tiers[tier], `persona[${expectedIntent}].tiers.${tier}`);
616
+ if (typeof model !== 'string' || !model.trim()) {
617
+ throw new Error(`persona[${expectedIntent}].model must be a non-empty string`);
359
618
  }
360
- let parsedDefaultTier;
361
- if (defaultTier !== undefined) {
362
- if (!isTier(defaultTier)) {
363
- throw new Error(`persona[${expectedIntent}].defaultTier must be one of: ${PERSONA_TIERS.join(', ')}`);
364
- }
365
- parsedDefaultTier = defaultTier;
619
+ const trimmedModel = model.trim();
620
+ if (typeof systemPrompt !== 'string' || !systemPrompt.trim()) {
621
+ throw new Error(`persona[${expectedIntent}].systemPrompt must be a non-empty string`);
366
622
  }
623
+ const parsedHarnessSettings = parseHarnessSettings(harnessSettings, `persona[${expectedIntent}].harnessSettings`);
367
624
  const parsedSkills = parseSkills(skills, `persona[${expectedIntent}].skills`);
368
625
  const parsedInputs = parseInputs(inputs, `persona[${expectedIntent}].inputs`);
369
626
  const parsedEnv = parseStringMap(env, `persona[${expectedIntent}].env`);
@@ -380,8 +637,6 @@ export function parsePersonaSpec(value, expectedIntent) {
380
637
  if (agentsMdMode !== undefined && !isSidecarMode(agentsMdMode)) {
381
638
  throw new Error(`persona[${expectedIntent}].agentsMdMode must be one of: ${SIDECAR_MD_MODES.join(', ')}`);
382
639
  }
383
- // Spec-level mode without a spec-level path is allowed — a tier may
384
- // supply the path while inheriting the mode here. See parseRuntime.
385
640
  if (claudeMdContent !== undefined &&
386
641
  (typeof claudeMdContent !== 'string' || !claudeMdContent.length)) {
387
642
  throw new Error(`persona[${expectedIntent}].claudeMdContent must be a non-empty string`);
@@ -390,6 +645,18 @@ export function parsePersonaSpec(value, expectedIntent) {
390
645
  (typeof agentsMdContent !== 'string' || !agentsMdContent.length)) {
391
646
  throw new Error(`persona[${expectedIntent}].agentsMdContent must be a non-empty string`);
392
647
  }
648
+ if (cloud !== undefined && typeof cloud !== 'boolean') {
649
+ throw new Error(`persona[${expectedIntent}].cloud must be a boolean if provided`);
650
+ }
651
+ if (useSubscription !== undefined && typeof useSubscription !== 'boolean') {
652
+ throw new Error(`persona[${expectedIntent}].useSubscription must be a boolean if provided`);
653
+ }
654
+ const parsedIntegrations = parseIntegrations(integrations, `persona[${expectedIntent}].integrations`);
655
+ const parsedSchedules = parseSchedules(schedules, `persona[${expectedIntent}].schedules`);
656
+ const parsedSandbox = parseSandbox(sandbox, `persona[${expectedIntent}].sandbox`);
657
+ const parsedMemory = parseMemory(memory, `persona[${expectedIntent}].memory`);
658
+ const parsedTraits = parseTraits(traits, `persona[${expectedIntent}].traits`);
659
+ const parsedOnEvent = parseOnEvent(onEvent, `persona[${expectedIntent}].onEvent`);
393
660
  return {
394
661
  id,
395
662
  intent,
@@ -397,8 +664,10 @@ export function parsePersonaSpec(value, expectedIntent) {
397
664
  description,
398
665
  skills: parsedSkills,
399
666
  ...(parsedInputs ? { inputs: parsedInputs } : {}),
400
- tiers: parsedTiers,
401
- ...(parsedDefaultTier ? { defaultTier: parsedDefaultTier } : {}),
667
+ harness,
668
+ model: trimmedModel,
669
+ systemPrompt,
670
+ harnessSettings: parsedHarnessSettings,
402
671
  ...(parsedEnv ? { env: parsedEnv } : {}),
403
672
  ...(parsedMcpServers ? { mcpServers: parsedMcpServers } : {}),
404
673
  ...(parsedPermissions ? { permissions: parsedPermissions } : {}),
@@ -408,39 +677,31 @@ export function parsePersonaSpec(value, expectedIntent) {
408
677
  ...(typeof agentsMd === 'string' ? { agentsMd } : {}),
409
678
  ...(agentsMdMode ? { agentsMdMode: agentsMdMode } : {}),
410
679
  ...(typeof claudeMdContent === 'string' ? { claudeMdContent } : {}),
411
- ...(typeof agentsMdContent === 'string' ? { agentsMdContent } : {})
680
+ ...(typeof agentsMdContent === 'string' ? { agentsMdContent } : {}),
681
+ ...(typeof cloud === 'boolean' ? { cloud } : {}),
682
+ ...(typeof useSubscription === 'boolean' ? { useSubscription } : {}),
683
+ ...(parsedIntegrations ? { integrations: parsedIntegrations } : {}),
684
+ ...(parsedSchedules ? { schedules: parsedSchedules } : {}),
685
+ ...(parsedSandbox !== undefined ? { sandbox: parsedSandbox } : {}),
686
+ ...(parsedMemory !== undefined ? { memory: parsedMemory } : {}),
687
+ ...(parsedTraits ? { traits: parsedTraits } : {}),
688
+ ...(parsedOnEvent !== undefined ? { onEvent: parsedOnEvent } : {})
412
689
  };
413
690
  }
414
691
  /**
415
- * Resolve the effective sidecar config for a (spec, tier) pair.
416
- *
417
- * Path-or-content resolution: each sidecar (`claude*`, `agents*`) is a
418
- * single "channel" its `*Md` and `*MdContent` fields are tied together
419
- * and travel as a unit through the cascade. If the tier-level runtime
420
- * declares EITHER `claudeMd` or `claudeMdContent`, the tier owns the
421
- * channel and the top-level path/content is ignored (otherwise a tier
422
- * path override would silently lose to inherited inlined content, since
423
- * downstream consumers prefer Content over a path).
424
- *
425
- * Mode resolution: independent — a tier can set just `claudeMdMode` and
426
- * inherit the top-level path. Defaults to `overwrite` if neither layer
427
- * sets a mode. Modes are only meaningful when a path/content is present.
692
+ * Resolve the effective sidecar config for a persona. Each sidecar
693
+ * (`claude*`, `agents*`) is a single channel of path + inlined content +
694
+ * mode read directly off the spec. Modes default to `overwrite` and are
695
+ * only meaningful when a path or inlined content is present.
428
696
  */
429
- export function resolveSidecar(spec, tier) {
430
- const runtime = spec.tiers[tier];
431
- const tierOwnsClaude = runtime.claudeMd !== undefined || runtime.claudeMdContent !== undefined;
432
- const tierOwnsAgents = runtime.agentsMd !== undefined || runtime.agentsMdContent !== undefined;
433
- const claudePath = tierOwnsClaude ? runtime.claudeMd : spec.claudeMd;
434
- const claudeContent = tierOwnsClaude ? runtime.claudeMdContent : spec.claudeMdContent;
435
- const agentsPath = tierOwnsAgents ? runtime.agentsMd : spec.agentsMd;
436
- const agentsContent = tierOwnsAgents ? runtime.agentsMdContent : spec.agentsMdContent;
697
+ export function resolveSidecar(spec) {
437
698
  return {
438
- ...(claudePath ? { claudeMd: claudePath } : {}),
439
- ...(claudeContent ? { claudeMdContent: claudeContent } : {}),
440
- claudeMdMode: runtime.claudeMdMode ?? spec.claudeMdMode ?? 'overwrite',
441
- ...(agentsPath ? { agentsMd: agentsPath } : {}),
442
- ...(agentsContent ? { agentsMdContent: agentsContent } : {}),
443
- agentsMdMode: runtime.agentsMdMode ?? spec.agentsMdMode ?? 'overwrite'
699
+ ...(spec.claudeMd ? { claudeMd: spec.claudeMd } : {}),
700
+ ...(spec.claudeMdContent ? { claudeMdContent: spec.claudeMdContent } : {}),
701
+ claudeMdMode: spec.claudeMdMode ?? 'overwrite',
702
+ ...(spec.agentsMd ? { agentsMd: spec.agentsMd } : {}),
703
+ ...(spec.agentsMdContent ? { agentsMdContent: spec.agentsMdContent } : {}),
704
+ agentsMdMode: spec.agentsMdMode ?? 'overwrite'
444
705
  };
445
706
  }
446
707
  export function sidecarSelectionFields(sidecar) {
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}