@aihq/harness 0.6.0 → 1.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.
package/dist/cli.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import{qa as s,ra as e,sa as n}from"./chunk-PHJ6DL2Y.js";e(process.argv)?s().parse(process.argv):n().then(({program:r,warnings:o})=>{for(let i of o)process.stderr.write(`aih: plugin: ${i}
2
+ import{qa as s,ra as e,sa as n}from"./chunk-WZTIDZFM.js";e(process.argv)?s().parse(process.argv):n().then(({program:r,warnings:o})=>{for(let i of o)process.stderr.write(`aih: plugin: ${i}
3
3
  `);return r.parseAsync(process.argv)}).catch(r=>{process.stderr.write(`fatal: ${r instanceof Error?r.message:String(r)}
4
4
  `),process.exitCode=1});
package/dist/index.d.ts CHANGED
@@ -443,6 +443,23 @@ interface CommandOption {
443
443
  interface CommandSpec {
444
444
  name: string;
445
445
  summary: string;
446
+ /**
447
+ * Old command NAMES this command still answers to after a rename — the
448
+ * alias-before-removal deprecation machinery (STABILITY.md). Each entry
449
+ * registers as a commander alias of this command on the shared registerSpec
450
+ * path (src/commands/index.ts): the old name dispatches the SAME action with
451
+ * the same flags, after ONE stderr line naming the replacement. An alias
452
+ * lives for at least one minor release and is removed only by the next
453
+ * major (VERSIONING.md), staying reserved in {@link builtinCommandNames}
454
+ * for its whole grace window. Core-only: the plugin registry strips this
455
+ * field from plugin specs — a plugin ships new commands, it never renames
456
+ * (or shadows) core ones. TOP-LEVEL commands only: specs registered through
457
+ * the manual parent-group paths (trust/skill/pack/marketplace/policy/
458
+ * evidence subcommands) never pass through registerSpec, so the field is
459
+ * silently ignored there — wire alias support into that path before the
460
+ * first nested rename.
461
+ */
462
+ deprecatedAliases?: string[];
446
463
  options?: CommandOption[];
447
464
  plan: PlanFn;
448
465
  /** Read-only commands (doctor/status) skip the apply path entirely. */
@@ -505,13 +522,18 @@ declare const CAPABILITIES: CommandSpec[];
505
522
  declare const READONLY: CommandSpec[];
506
523
  declare const ALL_COMMANDS: CommandSpec[];
507
524
  /**
508
- * Every top-level name the core CLI claims: ALL_COMMANDS plus the parent group
509
- * names (`workspace` is both a CommandSpec and a group the Set folds it)
510
- * plus commander's own reserved `help`/`version`. The plugin registry refuses
511
- * any external spec colliding with one of these, so a plugin can never shadow
512
- * `doctor`, capture the `marketplace` group, or impersonate `help`.
525
+ * Every top-level name the core CLI claims: ALL_COMMANDS' names AND their
526
+ * deprecated aliases (an old name stays reserved for its whole grace window
527
+ * see CommandSpec.deprecatedAliases), plus the parent group names
528
+ * (`workspace` is both a CommandSpec and a group the Set folds it) plus
529
+ * commander's own reserved `help`/`version`. The plugin registry refuses any
530
+ * external spec colliding with one of these, so a plugin can never shadow
531
+ * `doctor`, capture the `marketplace` group, impersonate `help`, or squat on
532
+ * a deprecated old name mid-migration. `specs` is a test seam (defaults to
533
+ * ALL_COMMANDS) so the alias reservation is provable while zero built-ins
534
+ * carry one.
513
535
  */
514
- declare function builtinCommandNames(): ReadonlySet<string>;
536
+ declare function builtinCommandNames(specs?: readonly CommandSpec[]): ReadonlySet<string>;
515
537
  /**
516
538
  * Register every command on the program. `extra` carries EXTERNAL plugin specs
517
539
  * (see src/plugins/registry.ts, already gated + collision-free): they flow
@@ -868,6 +890,12 @@ declare function parsePemBlocks(stdout: string, subject?: string): CertEntry[];
868
890
  * commander's reserved `--help`/`-h`/`--version`/`-V`.
869
891
  * - `skipWorktreeGate` is never honored for plugin commands — the field is
870
892
  * stripped from the registered copy (see {@link stripWorktreeGateField}).
893
+ * - `deprecatedAliases` is never honored for plugin commands — aliases are
894
+ * the CORE rename machinery (STABILITY.md), and an alias is an extra
895
+ * dispatch name the collision rules above do not walk. The field is
896
+ * stripped from the registered copy with a warning (see
897
+ * {@link stripDeprecatedAliasesField}); built-in aliases stay reserved
898
+ * against plugin NAMES via builtinCommandNames.
871
899
  * - Warnings render hostile input: every plugin-influenced string that lands
872
900
  * in a warning routes through {@link sanitizeLabel} first.
873
901
  *
@@ -940,7 +968,7 @@ declare function allowedPluginRoots(): string[];
940
968
  */
941
969
  declare function loadExternalCommands(builtinNames: ReadonlySet<string>, opts?: PluginLoadOptions): Promise<PluginLoadResult>;
942
970
 
943
- declare const VERSION = "0.6.0";
971
+ declare const VERSION = "1.0.1";
944
972
  /**
945
973
  * Build the configured commander program. Imported by both the CLI entry and
946
974
  * tests. Stays SYNC: `extra` lets callers merge pre-loaded plugin specs — the
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as xr,A as Y,B as _,C as c,D as j,E as k,F as q,G as v,H as w,I as y,J as z,K as F,L as G,M as H,N as J,O as K,P as Q,Q as U,R as X,S as Z,T as $,U as rr,V as or,W as mr,X as er,Y as tr,Z as fr,_ as pr,a as i,aa as ir,b as a,ba as ar,c as A,ca as Ar,d,da as dr,e as g,ea as gr,f as l,fa as lr,g as n,ga as nr,h as s,ha as sr,i as u,ia as ur,j as C,ja as Cr,k as I,ka as r,l as L,la as o,m as N,ma as m,n as P,na as e,o as b,oa as t,p as E,pa as f,q as O,qa as p,r as S,s as D,sa as x,t as M,u as R,v as h,w as B,x as T,y as V,z as W}from"./chunk-PHJ6DL2Y.js";export{m as ALL_COMMANDS,i as AihError,r as CAPABILITIES,P as ContextDir,u as DirtyWorktreeError,I as FsTransaction,d as FsTxnError,n as MergeError,l as NotImplementedError,lr as PLUGIN_PACKAGE,s as PathContainmentError,A as PlatformError,o as READONLY,nr as SHARED_FLAG_TOKENS,a as SettingsError,f as VERSION,g as VerificationError,U as VerificationReport,ur as allowedPluginRoots,v as beginMarker,p as buildProgram,x as buildProgramWithPlugins,e as builtinCommandNames,Q as deepMerge,or as defaultRunner,tr as derBase64ToPem,D as digest,S as doc,M as dynamicDigest,w as endMarker,q as ensureTrailingNewline,T as envBlock,B as exec,$ as executePlan,mr as fakeRunner,z as formatExport,j as frontmatter,c as indent,K as isPlainObject,k as jsonFile,_ as lines,Cr as loadExternalCommands,b as loadSettings,gr as makeHostAdapter,y as managedBlock,er as missingToolRunner,ar as parseCertLines,xr as parseFirstInt,J as parseJsoncText,ir as parseNvidiaSmi,Ar as parsePemBlocks,W as plan,R as probe,h as probeMany,L as readIfExists,N as readRegularFile,t as registerCommands,V as remove,H as removeManagedBlock,Z as resolveContents,dr as resolvePlatform,C as retryTransient,fr as safeCaPattern,sr as sanitizeLabel,Y as stripTrailingNewlines,rr as summarizeResult,F as upsertManagedBlock,G as upsertTextBlock,pr as vdiFromEnv,X as writeArtifact,O as writeJson,E as writeText};
1
+ import{$ as xr,A as Y,B as _,C as c,D as j,E as k,F as q,G as v,H as w,I as y,J as z,K as F,L as G,M as H,N as J,O as K,P as Q,Q as U,R as X,S as Z,T as $,U as rr,V as or,W as mr,X as er,Y as tr,Z as fr,_ as pr,a as i,aa as ir,b as a,ba as ar,c as A,ca as Ar,d,da as dr,e as g,ea as gr,f as l,fa as lr,g as n,ga as nr,h as s,ha as sr,i as u,ia as ur,j as C,ja as Cr,k as I,ka as r,l as L,la as o,m as N,ma as m,n as P,na as e,o as b,oa as t,p as E,pa as f,q as O,qa as p,r as S,s as D,sa as x,t as M,u as R,v as h,w as B,x as T,y as V,z as W}from"./chunk-WZTIDZFM.js";export{m as ALL_COMMANDS,i as AihError,r as CAPABILITIES,P as ContextDir,u as DirtyWorktreeError,I as FsTransaction,d as FsTxnError,n as MergeError,l as NotImplementedError,lr as PLUGIN_PACKAGE,s as PathContainmentError,A as PlatformError,o as READONLY,nr as SHARED_FLAG_TOKENS,a as SettingsError,f as VERSION,g as VerificationError,U as VerificationReport,ur as allowedPluginRoots,v as beginMarker,p as buildProgram,x as buildProgramWithPlugins,e as builtinCommandNames,Q as deepMerge,or as defaultRunner,tr as derBase64ToPem,D as digest,S as doc,M as dynamicDigest,w as endMarker,q as ensureTrailingNewline,T as envBlock,B as exec,$ as executePlan,mr as fakeRunner,z as formatExport,j as frontmatter,c as indent,K as isPlainObject,k as jsonFile,_ as lines,Cr as loadExternalCommands,b as loadSettings,gr as makeHostAdapter,y as managedBlock,er as missingToolRunner,ar as parseCertLines,xr as parseFirstInt,J as parseJsoncText,ir as parseNvidiaSmi,Ar as parsePemBlocks,W as plan,R as probe,h as probeMany,L as readIfExists,N as readRegularFile,t as registerCommands,V as remove,H as removeManagedBlock,Z as resolveContents,dr as resolvePlatform,C as retryTransient,fr as safeCaPattern,sr as sanitizeLabel,Y as stripTrailingNewlines,rr as summarizeResult,F as upsertManagedBlock,G as upsertTextBlock,pr as vdiFromEnv,X as writeArtifact,O as writeJson,E as writeText};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aihq/harness",
3
- "version": "0.6.0",
4
- "description": "Enterprise AI Bootstrapping Harness — bootstraps governed, proxy-safe AI coding into workstations and repos",
3
+ "version": "1.0.1",
4
+ "description": "Enterprise AI Bootstrapping Harness — governed AI-assisted coding for enterprise workstations and repos: TLS trust, repo canon, skill supply chain, evidence",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/samartomar/ai-harness.git"