@aiwg/cli 2026.9.4 → 2026.9.6

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 (93) hide show
  1. package/THIRD_PARTY_NOTICES.md +16 -0
  2. package/agentic/code/providers/capability-matrix.yaml +45 -3
  3. package/agentic/code/providers/deepseek-harness/README.md +8 -0
  4. package/agentic/code/providers/deepseek-harness/aiwg.cordis.patch.yml +10 -0
  5. package/agentic/code/providers/model-capabilities.v1.json +11 -0
  6. package/agentic/code/providers/model-catalog.v1.json +8 -0
  7. package/bin/aiwg.mjs +1 -0
  8. package/dist/src/api/index.d.ts +14 -0
  9. package/dist/src/api/index.js +14 -0
  10. package/dist/src/artifacts/corpus-tools/source-types.js +1 -0
  11. package/dist/src/artifacts/index-files.js +17 -2
  12. package/dist/src/artifacts/repair.js +55 -6
  13. package/dist/src/catalog/cli.js +21 -7
  14. package/dist/src/catalog/cli.mjs +22 -7
  15. package/dist/src/cli/agent-spawn.js +10 -1
  16. package/dist/src/cli/handlers/artifacts.js +22 -3
  17. package/dist/src/cli/handlers/help.js +3 -0
  18. package/dist/src/cli/handlers/index.js +5 -1
  19. package/dist/src/cli/handlers/models.js +2 -2
  20. package/dist/src/cli/handlers/output-mode.js +1 -1
  21. package/dist/src/cli/handlers/runtime-info.js +1 -1
  22. package/dist/src/cli/handlers/sessions.js +55 -15
  23. package/dist/src/cli/handlers/steward.js +1 -1
  24. package/dist/src/cli/handlers/subcommands.js +5 -0
  25. package/dist/src/cli/handlers/writer-profile.js +110 -0
  26. package/dist/src/cli/handlers/writing.js +122 -0
  27. package/dist/src/cli/router.js +5 -1
  28. package/dist/src/config/project-artifacts-runtime.mjs +33 -1
  29. package/dist/src/config/project-artifacts.js +1 -1
  30. package/dist/src/dataset/fortemi-dataset-execution.d.ts +23 -0
  31. package/dist/src/dataset/fortemi-dataset-execution.js +158 -0
  32. package/dist/src/dataset/fortemi-live-qualification.d.ts +4 -2
  33. package/dist/src/dataset/fortemi-live-qualification.js +20 -21
  34. package/dist/src/dataset/fortemi-run-receipt.d.ts +44 -0
  35. package/dist/src/dataset/fortemi-run-receipt.js +74 -0
  36. package/dist/src/dataset/index.d.ts +2 -0
  37. package/dist/src/dataset/index.js +2 -0
  38. package/dist/src/extensions/commands/definitions.js +24 -0
  39. package/dist/src/extensions/manifest.js +3 -0
  40. package/dist/src/mcp/server.mjs +2 -0
  41. package/dist/src/mcp/tools/writer-profiles.mjs +40 -0
  42. package/dist/src/models/model-capabilities.v1.json +11 -0
  43. package/dist/src/models/model-catalog.v1.json +8 -0
  44. package/dist/src/models/provider-policy.js +1 -1
  45. package/dist/src/network-analysis/analyzer.js +667 -0
  46. package/dist/src/network-analysis/citations.js +107 -0
  47. package/dist/src/network-analysis/forensics.js +132 -0
  48. package/dist/src/network-analysis/governance.js +216 -0
  49. package/dist/src/network-analysis/index.js +10 -0
  50. package/dist/src/network-analysis/probe.js +405 -0
  51. package/dist/src/network-analysis/recipes.js +88 -0
  52. package/dist/src/network-analysis/research.js +181 -0
  53. package/dist/src/network-analysis/termshark.js +252 -0
  54. package/dist/src/network-analysis/verification.js +171 -0
  55. package/dist/src/output-modes/registry.js +37 -6
  56. package/dist/src/output-modes/runtime.js +164 -28
  57. package/dist/src/providers/capability-matrix.yaml +45 -3
  58. package/dist/src/providers/provider-definitions.js +49 -0
  59. package/dist/src/providers/provider-inventory.js +1 -0
  60. package/dist/src/providers/transformation-receipt.js +3 -2
  61. package/dist/src/sessions/adapters/deepseek-harness.js +178 -0
  62. package/dist/src/sessions/batch-import.js +7 -0
  63. package/dist/src/sessions/contracts.js +2 -1
  64. package/dist/src/sessions/index.js +1 -0
  65. package/dist/src/sessions/workspace-discovery.js +5 -1
  66. package/dist/src/skills/deployer.js +6 -6
  67. package/dist/src/smiths/context-pipeline/workspace-context.js +7 -0
  68. package/dist/src/writing/channel-packs.js +13 -0
  69. package/dist/src/writing/contextual-diagnostics.js +142 -0
  70. package/dist/src/writing/example-generator.js +7 -6
  71. package/dist/src/writing/exemplar-selection.js +186 -0
  72. package/dist/src/writing/fidelity.js +61 -0
  73. package/dist/src/writing/validation-engine.js +32 -15
  74. package/dist/src/writing/voice-evaluation.js +301 -0
  75. package/dist/src/writing/voice-revision.js +201 -0
  76. package/dist/src/writing/writer-migration.js +216 -0
  77. package/dist/src/writing/writer-profile-legacy.js +145 -0
  78. package/dist/src/writing/writer-profile-store.js +117 -0
  79. package/dist/src/writing/writer-profile.js +222 -0
  80. package/dist/src/writing/writing-brief.js +166 -0
  81. package/dist/src/writing/writing-channels.js +63 -0
  82. package/dist/src/writing/writing-consumer.js +39 -0
  83. package/dist/src/writing/writing-receipt.js +266 -0
  84. package/package.json +2 -1
  85. package/schemas/dataset/fortemi-live-qualification-receipt.v2.schema.json +196 -0
  86. package/schemas/dataset/fortemi-run-receipt/validation-1.0.1/authority.json +12 -0
  87. package/schemas/dataset/fortemi-run-receipt/validation-1.0.1/run-receipt.schema.json +819 -0
  88. package/tools/agents/deploy-agents.mjs +7 -3
  89. package/tools/agents/providers/antigravity.mjs +1 -1
  90. package/tools/agents/providers/base.mjs +3 -2
  91. package/tools/agents/providers/deepseek-harness.mjs +66 -0
  92. package/tools/agents/providers/hermes.mjs +1 -1
  93. package/tools/agents/providers/openhuman.mjs +2 -2
@@ -20,7 +20,7 @@
20
20
  * --rules-only Deploy only rules (skip agents)
21
21
  * --dry-run Show what would be deployed without writing
22
22
  * --force Overwrite existing files
23
- * --provider <name> Target provider: antigravity (agy), claude (default), openai, codex, cursor, opencode, copilot, factory, pi, omp, warp, devin, hermes, or openclaw
23
+ * --provider <name> Target provider: antigravity (agy), claude (default), openai, codex, cursor, opencode, copilot, factory, pi, omp, deepseek-harness (dsh), warp, devin, hermes, or openclaw
24
24
  * --model <name> Override model for all tiers (blanket)
25
25
  * --reasoning-model <name> Override model for reasoning tasks
26
26
  * --coding-model <name> Override model for coding tasks
@@ -54,6 +54,7 @@
54
54
  * openclaw - OpenClaw - ~/.openclaw/agents/, ~/.openclaw/commands/, ~/.openclaw/skills/, ~/.openclaw/rules/, ~/.openclaw/behaviors/
55
55
  * pi - Pi Coding Agent - .agents/skills/, .pi/skills/, .pi/prompts/, AGENTS.md
56
56
  * omp - Oh My Pi - .omp/agents/, .omp/prompts/, .agents/skills/, .omp/AGENTS.md
57
+ * deepseek-harness - DeepSeek Harness - .agents/skills/, AGENTS.md, .dsh/aiwg.cordis.patch.yml
57
58
  *
58
59
  * Defaults:
59
60
  * --source resolves relative to this script's repo root (../..)
@@ -113,9 +114,10 @@ const PROVIDER_ALIASES = {
113
114
  'cascade': 'windsurf',
114
115
  'pi-coding-agent': 'pi',
115
116
  'oh-my-pi': 'omp',
117
+ 'dsh': 'deepseek-harness',
116
118
  };
117
119
 
118
- const AVAILABLE_PROVIDERS = ['antigravity', 'claude', 'factory', 'codex', 'opencode', 'copilot', 'cursor', 'pi', 'omp', 'warp', 'windsurf', 'hermes', 'openclaw', 'openhuman'];
120
+ const AVAILABLE_PROVIDERS = ['antigravity', 'claude', 'factory', 'codex', 'opencode', 'copilot', 'cursor', 'pi', 'omp', 'deepseek-harness', 'warp', 'windsurf', 'hermes', 'openclaw', 'openhuman'];
119
121
 
120
122
  const UNSUPPORTED_PROVIDER_HINTS = {
121
123
  'devin-cli': [
@@ -157,7 +159,7 @@ const MIRRORED_KERNEL_COMMAND_SKILLS = new Set([
157
159
  ]);
158
160
 
159
161
  function providerUsesSkillsNatively(providerName) {
160
- return ['antigravity', 'claude', 'cursor', 'hermes', 'openhuman', 'pi', 'omp'].includes(providerName);
162
+ return ['antigravity', 'claude', 'cursor', 'deepseek-harness', 'hermes', 'openhuman', 'pi', 'omp'].includes(providerName);
161
163
  }
162
164
 
163
165
  function shouldMirrorStandardCommandSkill(skillName) {
@@ -557,6 +559,8 @@ Providers (all deploy agents, commands, skills, and rules):
557
559
  Paths: .cursor/agents/, .cursor/commands/, .cursor/skills/, .cursor/rules/
558
560
  warp - Warp Terminal
559
561
  Paths: .warp/agents/, .warp/commands/, .warp/skills/, .warp/rules/ + WARP.md
562
+ deepseek-harness - DeepSeek Harness (alias: dsh; experimental)
563
+ Paths: AGENTS.md, .agents/skills/, .dsh/aiwg.cordis.patch.yml
560
564
  devin - Devin Desktop (preferred; aliases: devin-desktop, windsurf)
561
565
  Paths: .windsurf/agents/, .windsurf/workflows/, .windsurf/skills/, .windsurf/rules/
562
566
  hermes - Hermes Agent (MCP-based integration)
@@ -19,7 +19,7 @@ export const name = 'antigravity';
19
19
  export const aliases = ['agy'];
20
20
  export const paths = { agents: '.agents/agents', commands: '', skills: '.agents/skills', rules: '' };
21
21
  export const kernelSkillsPath = '.agents/skills';
22
- export const support = { agents: 'degraded', commands: 'unsupported', skills: 'native', rules: 'context' };
22
+ export const support = { agents: 'degraded', commands: 'indexed', skills: 'native', rules: 'context' };
23
23
  export const capabilities = {
24
24
  skills: true,
25
25
  rules: false,
@@ -2964,8 +2964,8 @@ export const ProviderInterface = {
2964
2964
  aliases: [],
2965
2965
 
2966
2966
  // ── Path Configuration ──────────────────────────────────────────────
2967
- // ALL four paths are REQUIRED for v2. Every provider deploys every artifact type.
2968
- // Provider dictates which directories to use; null paths are no longer allowed.
2967
+ // Paths describe native or conventional deployment only. Empty paths mean
2968
+ // indexed access via aiwg discover/show, not an unavailable artifact class.
2969
2969
  paths: {
2970
2970
  agents: null,
2971
2971
  commands: null,
@@ -2978,6 +2978,7 @@ export const ProviderInterface = {
2978
2978
  // 'native' - Platform natively discovers and uses these files
2979
2979
  // 'conventional' - AIWG directory convention; available for @-mention context loading
2980
2980
  // 'aggregated' - Content included in aggregated file AND deployed as discrete files
2981
+ // 'indexed' - Full source body available via aiwg discover/show without a native loader
2981
2982
  support: {
2982
2983
  agents: 'conventional',
2983
2984
  commands: 'conventional',
@@ -0,0 +1,66 @@
1
+ /** DeepSeek Harness deployment adapter. */
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import {
5
+ collectFrameworkArtifacts,
6
+ createAgentsMdFromTemplate,
7
+ deployFiles,
8
+ deploySkillDir,
9
+ ensureDir,
10
+ getAddonSkillDirs,
11
+ normalizeDeploymentMode,
12
+ resolveAiwgRoot,
13
+ } from './base.mjs';
14
+
15
+ export const name = 'deepseek-harness';
16
+ export const aliases = ['dsh'];
17
+ export const paths = { agents: '', commands: '', skills: '.agents/skills', rules: '' };
18
+ export const kernelSkillsPath = '.agents/skills';
19
+ export const support = { agents: 'skills', commands: 'skills', skills: 'native', rules: 'context' };
20
+ export const capabilities = { skills: true, rules: false, aggregatedOutput: false, yamlFormat: true, homeDirectoryDeploy: false };
21
+ export const mapModel = model => model;
22
+ export const transformAgent = (_path, content) => content;
23
+ export const transformCommand = (_path, content) => content;
24
+ export const deployAgents = () => 0;
25
+ export const deployCommands = () => 0;
26
+ export const deployRules = () => 0;
27
+
28
+ export function deploySkills(skillDirs, targetDir, opts) {
29
+ const destination = path.join(targetDir, kernelSkillsPath);
30
+ ensureDir(destination, opts.dryRun);
31
+ const unique = [...new Set(skillDirs)];
32
+ for (const skillDir of unique) deploySkillDir(skillDir, destination, opts);
33
+ return unique.length;
34
+ }
35
+
36
+ export function createAgentsMd(target, srcRoot, dryRun) {
37
+ createAgentsMdFromTemplate(target, resolveAiwgRoot(srcRoot) || srcRoot, 'deepseek-harness/AGENTS.md.aiwg-template', dryRun);
38
+ }
39
+
40
+ export function deployCordisPatch(target, opts) {
41
+ const source = path.join(resolveAiwgRoot(opts.srcRoot) || opts.srcRoot, 'agentic/code/providers/deepseek-harness/aiwg.cordis.patch.yml');
42
+ if (!fs.existsSync(source)) return 0;
43
+ const destination = path.join(target, '.dsh');
44
+ ensureDir(destination, opts.dryRun);
45
+ return deployFiles([source], destination, { ...opts, force: opts.force }, (_src, content) => content);
46
+ }
47
+
48
+ export async function postDeploy(target, opts) {
49
+ if (opts.createAgentsMd || (!opts.commandsOnly && !opts.skillsOnly && !opts.rulesOnly)) createAgentsMd(target, opts.srcRoot, opts.dryRun);
50
+ if (!opts.quiet) console.log('DeepSeek Harness: runtime credentials remain environment-only; use a reviewed ephemeral route patch.');
51
+ }
52
+
53
+ export function getFileExtension() { return '.md'; }
54
+
55
+ export async function deploy(opts) {
56
+ const mode = normalizeDeploymentMode(opts.mode);
57
+ const skillDirs = [...getAddonSkillDirs(opts.srcRoot)];
58
+ skillDirs.push(...collectFrameworkArtifacts(opts.srcRoot, mode, { includeAgents: false, includeCommands: false, includeSkills: true, includeRules: false }).skills);
59
+ let count = 0;
60
+ if (!opts.commandsOnly && !opts.rulesOnly) count += deploySkills(skillDirs, opts.target, opts);
61
+ if (!opts.commandsOnly && !opts.skillsOnly && !opts.rulesOnly) count += deployCordisPatch(opts.target, opts).filter(action => action.type === 'deploy').length;
62
+ await postDeploy(opts.target, opts);
63
+ return count;
64
+ }
65
+
66
+ export default { name, aliases, paths, kernelSkillsPath, support, capabilities, mapModel, transformAgent, transformCommand, deployAgents, deployCommands, deploySkills, deployRules, createAgentsMd, deployCordisPatch, postDeploy, getFileExtension, deploy };
@@ -128,7 +128,7 @@ export const hermesHome = HERMES_HOME;
128
128
 
129
129
  export const support = {
130
130
  agents: 'aggregated', // Agents aggregated into lean AGENTS.md
131
- commands: 'none', // Hermes has no AIWG slash-command file surface
131
+ commands: 'indexed', // Full command bodies via aiwg discover/show; no native file loader
132
132
  skills: 'native', // $HERMES_HOME/skills/ is the native skill location
133
133
  rules: 'agents-md+cli', // compressed in AGENTS.md; full bodies via CLI/MCP
134
134
  };
@@ -61,8 +61,8 @@ export const paths = {
61
61
  export const kernelSkillsPath = path.join(os.homedir(), '.openhuman', 'skills');
62
62
 
63
63
  export const support = {
64
- agents: 'none', // Native TOML harness agents are emitted by the CLI
65
- commands: 'none',
64
+ agents: 'indexed', // Personas via aiwg discover/show; native TOML harness agents are opt-in
65
+ commands: 'indexed', // Full command bodies via aiwg discover/show
66
66
  skills: 'native', // .openhuman/skills/ natively scanned
67
67
  rules: 'indexed', // `aiwg show rule`
68
68
  };