@exellix/ai-tasks 9.1.0 → 10.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 (252) hide show
  1. package/CHANGELOG.md +34 -4
  2. package/README.md +2 -2
  3. package/RUNTASK_REQUEST.md +32 -17
  4. package/dist/builders/task-request-builder.d.ts.map +1 -1
  5. package/dist/builders/task-request-builder.js +2 -1
  6. package/dist/builders/task-request-builder.js.map +1 -1
  7. package/dist/compile/compileTaskConfiguration.d.ts.map +1 -1
  8. package/dist/compile/compileTaskConfiguration.js +3 -0
  9. package/dist/compile/compileTaskConfiguration.js.map +1 -1
  10. package/dist/core/task-sdk.d.ts.map +1 -1
  11. package/dist/core/task-sdk.js +148 -180
  12. package/dist/core/task-sdk.js.map +1 -1
  13. package/dist/errors/runTaskExecutionError.d.ts.map +1 -1
  14. package/dist/errors/runTaskExecutionError.js +0 -2
  15. package/dist/errors/runTaskExecutionError.js.map +1 -1
  16. package/dist/index.d.ts +0 -4
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +0 -4
  19. package/dist/index.js.map +1 -1
  20. package/dist/invocation/types.d.ts +1 -1
  21. package/dist/narrix/applyWebScopeToRequest.d.ts +9 -0
  22. package/dist/narrix/applyWebScopeToRequest.d.ts.map +1 -0
  23. package/dist/narrix/applyWebScopeToRequest.js +156 -0
  24. package/dist/narrix/applyWebScopeToRequest.js.map +1 -0
  25. package/dist/narrix/narrixUnitExecution.d.ts.map +1 -1
  26. package/dist/narrix/narrixUnitExecution.js +8 -3
  27. package/dist/narrix/narrixUnitExecution.js.map +1 -1
  28. package/dist/node-execution/buildRequestFromNodePlan.d.ts +6 -0
  29. package/dist/node-execution/buildRequestFromNodePlan.d.ts.map +1 -1
  30. package/dist/node-execution/buildRequestFromNodePlan.js +4 -16
  31. package/dist/node-execution/buildRequestFromNodePlan.js.map +1 -1
  32. package/dist/node-execution/compileProfessionalAnswerRequest.d.ts +2 -0
  33. package/dist/node-execution/compileProfessionalAnswerRequest.d.ts.map +1 -0
  34. package/dist/node-execution/compileProfessionalAnswerRequest.js +4 -0
  35. package/dist/node-execution/compileProfessionalAnswerRequest.js.map +1 -0
  36. package/dist/node-execution/createNodeExecutionHost.d.ts.map +1 -1
  37. package/dist/node-execution/createNodeExecutionHost.js +97 -26
  38. package/dist/node-execution/createNodeExecutionHost.js.map +1 -1
  39. package/dist/node-execution/dispatchExecutionUnit.d.ts.map +1 -1
  40. package/dist/node-execution/dispatchExecutionUnit.js +4 -2
  41. package/dist/node-execution/dispatchExecutionUnit.js.map +1 -1
  42. package/dist/node-execution/orchestration/runPostOrchestration.d.ts +11 -0
  43. package/dist/node-execution/orchestration/runPostOrchestration.d.ts.map +1 -0
  44. package/dist/node-execution/orchestration/runPostOrchestration.js +123 -0
  45. package/dist/node-execution/orchestration/runPostOrchestration.js.map +1 -0
  46. package/dist/node-execution/orchestration/runPreOrchestration.d.ts +3 -0
  47. package/dist/node-execution/orchestration/runPreOrchestration.d.ts.map +1 -0
  48. package/dist/node-execution/orchestration/runPreOrchestration.js +110 -0
  49. package/dist/node-execution/orchestration/runPreOrchestration.js.map +1 -0
  50. package/dist/node-execution/orchestration/shardContext.d.ts +12 -0
  51. package/dist/node-execution/orchestration/shardContext.d.ts.map +1 -0
  52. package/dist/node-execution/orchestration/shardContext.js +71 -0
  53. package/dist/node-execution/orchestration/shardContext.js.map +1 -0
  54. package/dist/node-execution/orchestration/types.d.ts +21 -0
  55. package/dist/node-execution/orchestration/types.d.ts.map +1 -0
  56. package/dist/node-execution/orchestration/types.js +2 -0
  57. package/dist/node-execution/orchestration/types.js.map +1 -0
  58. package/dist/node-execution/rejectForbiddenWireFields.d.ts +2 -0
  59. package/dist/node-execution/rejectForbiddenWireFields.d.ts.map +1 -1
  60. package/dist/node-execution/rejectForbiddenWireFields.js +42 -7
  61. package/dist/node-execution/rejectForbiddenWireFields.js.map +1 -1
  62. package/dist/observability/classifyRunTaskFailure.d.ts.map +1 -1
  63. package/dist/observability/classifyRunTaskFailure.js +4 -3
  64. package/dist/observability/classifyRunTaskFailure.js.map +1 -1
  65. package/dist/observability/logRunTaskFailure.d.ts.map +1 -1
  66. package/dist/observability/logRunTaskFailure.js +0 -2
  67. package/dist/observability/logRunTaskFailure.js.map +1 -1
  68. package/dist/post-steps/audit/auditChecklistFuncxEnvelope.d.ts +19 -3
  69. package/dist/post-steps/audit/auditChecklistFuncxEnvelope.d.ts.map +1 -1
  70. package/dist/post-steps/audit/auditChecklistFuncxEnvelope.js +7 -1
  71. package/dist/post-steps/audit/auditChecklistFuncxEnvelope.js.map +1 -1
  72. package/dist/post-steps/audit/loadAuditTemplates.d.ts +2 -55
  73. package/dist/post-steps/audit/loadAuditTemplates.d.ts.map +1 -1
  74. package/dist/post-steps/audit/loadAuditTemplates.js +3 -38
  75. package/dist/post-steps/audit/loadAuditTemplates.js.map +1 -1
  76. package/dist/post-steps/audit/parseAuditFuncxOutput.d.ts +8 -0
  77. package/dist/post-steps/audit/parseAuditFuncxOutput.d.ts.map +1 -0
  78. package/dist/post-steps/audit/parseAuditFuncxOutput.js +62 -0
  79. package/dist/post-steps/audit/parseAuditFuncxOutput.js.map +1 -0
  80. package/dist/post-steps/audit/parseAuditOutput.d.ts +2 -0
  81. package/dist/post-steps/audit/parseAuditOutput.d.ts.map +1 -1
  82. package/dist/post-steps/audit/parseAuditOutput.js +56 -0
  83. package/dist/post-steps/audit/parseAuditOutput.js.map +1 -1
  84. package/dist/post-steps/audit/runAudit.d.ts.map +1 -1
  85. package/dist/post-steps/audit/runAudit.js +53 -113
  86. package/dist/post-steps/audit/runAudit.js.map +1 -1
  87. package/dist/post-steps/audit/runAuditFuncxCall.d.ts +18 -0
  88. package/dist/post-steps/audit/runAuditFuncxCall.d.ts.map +1 -0
  89. package/dist/post-steps/audit/runAuditFuncxCall.js +59 -0
  90. package/dist/post-steps/audit/runAuditFuncxCall.js.map +1 -0
  91. package/dist/synthesis/resolveSourceMaterial.d.ts.map +1 -1
  92. package/dist/synthesis/resolveSourceMaterial.js +14 -0
  93. package/dist/synthesis/resolveSourceMaterial.js.map +1 -1
  94. package/dist/synthesis/runStructuredSynthesisRobust.d.ts.map +1 -1
  95. package/dist/synthesis/runStructuredSynthesisRobust.js +24 -4
  96. package/dist/synthesis/runStructuredSynthesisRobust.js.map +1 -1
  97. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts +3 -0
  98. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.d.ts.map +1 -1
  99. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js +28 -4
  100. package/dist/task-strategies/buildTaskStrategyCatalogDescriptor.js.map +1 -1
  101. package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts +4 -4
  102. package/dist/task-strategies/canonicalInputExecutionStrategies.d.ts.map +1 -1
  103. package/dist/task-strategies/canonicalInputExecutionStrategies.js +2 -1
  104. package/dist/task-strategies/canonicalInputExecutionStrategies.js.map +1 -1
  105. package/dist/task-strategies/canonicalOrchestrationStrategies.d.ts +42 -0
  106. package/dist/task-strategies/canonicalOrchestrationStrategies.d.ts.map +1 -0
  107. package/dist/task-strategies/canonicalOrchestrationStrategies.js +47 -0
  108. package/dist/task-strategies/canonicalOrchestrationStrategies.js.map +1 -0
  109. package/dist/task-strategies/canonicalTaskStrategies.d.ts +2 -1
  110. package/dist/task-strategies/canonicalTaskStrategies.d.ts.map +1 -1
  111. package/dist/task-strategies/canonicalTaskStrategies.js +2 -1
  112. package/dist/task-strategies/canonicalTaskStrategies.js.map +1 -1
  113. package/dist/task-strategies/constants.d.ts +9 -1
  114. package/dist/task-strategies/constants.d.ts.map +1 -1
  115. package/dist/task-strategies/constants.js +9 -1
  116. package/dist/task-strategies/constants.js.map +1 -1
  117. package/dist/task-strategies/index.d.ts +5 -3
  118. package/dist/task-strategies/index.d.ts.map +1 -1
  119. package/dist/task-strategies/index.js +4 -3
  120. package/dist/task-strategies/index.js.map +1 -1
  121. package/dist/task-strategies/listAiTaskStrategies.d.ts +10 -1
  122. package/dist/task-strategies/listAiTaskStrategies.d.ts.map +1 -1
  123. package/dist/task-strategies/listAiTaskStrategies.js +17 -2
  124. package/dist/task-strategies/listAiTaskStrategies.js.map +1 -1
  125. package/dist/types/task-types.d.ts +4 -11
  126. package/dist/types/task-types.d.ts.map +1 -1
  127. package/dist/utils/bridgeRunSkillGatewayMemory.d.ts.map +1 -1
  128. package/dist/utils/bridgeRunSkillGatewayMemory.js +1 -0
  129. package/dist/utils/bridgeRunSkillGatewayMemory.js.map +1 -1
  130. package/dist/utils/executionMemoryInputRecord.d.ts +12 -0
  131. package/dist/utils/executionMemoryInputRecord.d.ts.map +1 -0
  132. package/dist/utils/executionMemoryInputRecord.js +28 -0
  133. package/dist/utils/executionMemoryInputRecord.js.map +1 -0
  134. package/dist/utils/resolveAiProfileModel.d.ts +1 -1
  135. package/dist/utils/resolveAiProfileModel.d.ts.map +1 -1
  136. package/dist/utils/resolveRunTaskModelReferences.d.ts.map +1 -1
  137. package/dist/utils/resolveRunTaskModelReferences.js +0 -32
  138. package/dist/utils/resolveRunTaskModelReferences.js.map +1 -1
  139. package/dist/utils/runTaskRequestShape.d.ts.map +1 -1
  140. package/dist/utils/runTaskRequestShape.js +4 -26
  141. package/dist/utils/runTaskRequestShape.js.map +1 -1
  142. package/dist/utils/skillTemplateVariables.d.ts +3 -2
  143. package/dist/utils/skillTemplateVariables.d.ts.map +1 -1
  144. package/dist/utils/skillTemplateVariables.js +3 -2
  145. package/dist/utils/skillTemplateVariables.js.map +1 -1
  146. package/dist/validation/validateProfessionalAnswerContract.d.ts +8 -0
  147. package/dist/validation/validateProfessionalAnswerContract.d.ts.map +1 -0
  148. package/dist/validation/validateProfessionalAnswerContract.js +45 -0
  149. package/dist/validation/validateProfessionalAnswerContract.js.map +1 -0
  150. package/dist/validation/validateRunTaskConfig.d.ts.map +1 -1
  151. package/dist/validation/validateRunTaskConfig.js +3 -66
  152. package/dist/validation/validateRunTaskConfig.js.map +1 -1
  153. package/documenations/record-and-template-variables.md +21 -13
  154. package/documenations/run-task-execution-flow.md +1 -1
  155. package/documenations/skill-orchestration-strategy-cr-fr.md +147 -0
  156. package/documenations/upstream-feature-requests/README.md +9 -5
  157. package/documenations/upstream-feature-requests/ai-skills-orchestrator-invoke-contract-5.9.md +1 -1
  158. package/documenations/upstream-feature-requests/funcx-4.9.13-open-items.md +62 -0
  159. package/documenations/upstream-feature-requests/funcx-gap-analysis-cr-fr.md +401 -0
  160. package/documenations/upstream-feature-requests/funcx-pre-post-sidekick-actions.md +1 -0
  161. package/documenations/upstream-feature-requests/graph-engine-runtask-contract-alignment-investigation.md +370 -0
  162. package/documenations/upstream-feature-requests/xynthesis-ai-profiles-2.1-import-break.md +2 -2
  163. package/documenations/upstream-feature-requests/xynthesis-openrouter-wire-model-double-prefix-bug.md +1 -1
  164. package/documenations/upstream-feature-requests/xynthesis-orchestrator-invoke-contract-4.2.md +1 -1
  165. package/package.json +10 -9
  166. package/.docs/DOWNSTREAM_ENV.md +0 -42
  167. package/.docs/FEEDBACK_TO_CLIENT_DOWNSTREAM_FIXES.md +0 -64
  168. package/.docs/INTERMEDIATE_STEPS.md +0 -82
  169. package/.docs/activity-structure.md +0 -31
  170. package/.docs/ai-task-ai-scoping-spec.md +0 -338
  171. package/.docs/ai-tasks-model-profile-aliases-7x.md +0 -96
  172. package/.docs/blockers-and-issues.md +0 -346
  173. package/.docs/building-runTask-sdk.md +0 -659
  174. package/.docs/building-skill-execution-orchestrator.md +0 -968
  175. package/.docs/code-used-before/run-task.txt +0 -39
  176. package/.docs/code-used-before/task-executor.ts.old +0 -57
  177. package/.docs/code-used-before/test-run-task.ts.old +0 -42
  178. package/.docs/code-used-before/types.txt +0 -23
  179. package/.docs/env-ready-policy.md +0 -40
  180. package/.docs/flow-io/flow-README.md +0 -76
  181. package/.docs/flow-io/narrix.md +0 -124
  182. package/.docs/flow-io/web-scoping.md +0 -135
  183. package/.docs/flow-io/xynthesis-post.md +0 -154
  184. package/.docs/flow-io/xynthesis-pre.md +0 -181
  185. package/.docs/gap-analysis.md +0 -201
  186. package/.docs/integration-facts-ai-tasks.md +0 -109
  187. package/.docs/investigation/ai-skills.md +0 -170
  188. package/.docs/investigation/external-packages-assignments.md +0 -66
  189. package/.docs/investigation/integration-summary.md +0 -20
  190. package/.docs/investigation/narrix-catalox.md +0 -29
  191. package/.docs/investigation/workplan-close-graph-engine-gaps.md +0 -101
  192. package/.docs/logging-stack.md +0 -30
  193. package/.docs/memory-narrix-adapter-developer-guide.md +0 -402
  194. package/.docs/memory-narrix-adapter-requirements.md +0 -112
  195. package/.docs/narrix-context-consumption-gap.md +0 -184
  196. package/.docs/narrix-context-downstream-report.md +0 -30
  197. package/.docs/narrix-ingest-and-packs-library-spec.md +0 -240
  198. package/.docs/narrix-record-input-current-design.md +0 -48
  199. package/.docs/pacakge.md +0 -48
  200. package/.docs/possible-components/README.md +0 -11
  201. package/.docs/possible-components/integration/README.md +0 -10
  202. package/.docs/possible-components/integration/gaps-when-merging.md +0 -16
  203. package/.docs/possible-components/integration/platform.md +0 -54
  204. package/.docs/possible-components/integration/reintegrate-into-ai-tasks.md +0 -26
  205. package/.docs/possible-components/integration/roadmap-and-checklists.md +0 -54
  206. package/.docs/possible-components/post-component/README.md +0 -18
  207. package/.docs/possible-components/post-component/builder-guide.md +0 -175
  208. package/.docs/possible-components/post-component/gaps-and-artifacts.md +0 -52
  209. package/.docs/possible-components/post-component/handler-audit.md +0 -47
  210. package/.docs/possible-components/post-component/handler-polish.md +0 -41
  211. package/.docs/possible-components/post-component/unified-protocol.md +0 -59
  212. package/.docs/possible-components/pre-component/README.md +0 -22
  213. package/.docs/possible-components/pre-component/builder-guide.md +0 -127
  214. package/.docs/possible-components/pre-component/gaps-and-artifacts.md +0 -35
  215. package/.docs/possible-components/pre-component/handler-ai-scoping.md +0 -45
  216. package/.docs/possible-components/pre-component/handler-narrix-preprocessor.md +0 -49
  217. package/.docs/possible-components/pre-component/handler-narrix-system2.md +0 -35
  218. package/.docs/possible-components/pre-component/handler-synthesized-context.md +0 -65
  219. package/.docs/possible-components/pre-component/handler-web-scope.md +0 -29
  220. package/.docs/possible-components/pre-component/unified-protocol.md +0 -89
  221. package/.docs/prefer-openrouter-routing-policy.md +0 -114
  222. package/.docs/questions-for-ai-skills.md +0 -123
  223. package/.docs/realtime-narrixing-gap-analysis.md +0 -40
  224. package/.docs/realtime-narrixing.md +0 -433
  225. package/.docs/run-context-object.md +0 -32
  226. package/.docs/session-id-usage.md +0 -26
  227. package/.docs/skill-library-spec.md +0 -249
  228. package/.docs/synthesized-context-strategy-spec.md +0 -906
  229. package/.docs/upstream-issue/2026-03-21_woroces-ai-tasks_ISSUE-006_web-scope-question-from-cni-entity.md +0 -46
  230. package/.docs/web-scopper-embed.md +0 -93
  231. package/.docs/xynthesis-wiring-and-io.md +0 -12
  232. package/documenations/activix-feature-request-identity.md +0 -123
  233. package/documenations/bug-report-xynthesis-and-synthesis-call.md +0 -217
  234. package/documenations/feature-request-ai-skills-raw-template-access.md +0 -82
  235. package/documenations/feature-request-athenix-core-directive.md +0 -145
  236. package/documenations/feature-request-athenix-token-extraction.md +0 -124
  237. package/documenations/funcx-upstream-github-issues-draft.md +0 -153
  238. package/documenations/identity-metadata-contract.md +0 -165
  239. package/documenations/run-task-single-run-checklist.md +0 -109
  240. package/documenations/sessions/2026-06-08-subnets-model-resolution/CR-1-no-concrete-wire-in-graph-plans.md +0 -93
  241. package/documenations/sessions/2026-06-08-subnets-model-resolution/CR-2-skillModel-profile-only-at-storage.md +0 -88
  242. package/documenations/sessions/2026-06-08-subnets-model-resolution/CR-3-reject-concrete-models-in-catalog-rows.md +0 -76
  243. package/documenations/sessions/2026-06-08-subnets-model-resolution/FR-1-suggested-profile-in-catalogs.md +0 -96
  244. package/documenations/sessions/2026-06-08-subnets-model-resolution/FR-2-graph-engine-failure-phase-attribution.md +0 -92
  245. package/documenations/sessions/2026-06-08-subnets-model-resolution/INVESTIGATION-original-bug.md +0 -182
  246. package/documenations/sessions/2026-06-08-subnets-model-resolution/PROBLEM.md +0 -236
  247. package/documenations/sessions/2026-06-08-subnets-model-resolution/README.md +0 -11
  248. package/documenations/sessions/2026-06-08-subnets-model-resolution/funcx-test-resolveModel.cheapDefaultWireSlug.test.ts +0 -117
  249. package/documenations/upstream-feature-requests/ai-tasks-wrap-up-after-upstream.md +0 -129
  250. package/documenations/upstream-feedback-request-shape-clarification.md +0 -101
  251. package/documenations/web-context-precedence.md +0 -33
  252. package/documenations/xynthesis-activix-telemetry.md +0 -28
@@ -1,249 +0,0 @@
1
- # Skillix — Skill Library Spec
2
-
3
- **Package:** `@skillices/skillix`
4
- **Git org:** `Skillices`
5
- **Consumer:** `@woroces/ai-tasks`
6
-
7
- ---
8
-
9
- ## 1. What Is Skillix
10
-
11
- Skillix is the **registry of skill definitions** — every skill that ai-tasks can execute lives here as a **Skillix entry**. Each entry carries the skill's **prompt**, **instructions path**, metadata, and execution defaults.
12
-
13
- ai-tasks ships a **built-in default registry**. Upstream packages ("skills packages") published under `@skillices/` can be installed and **merged** into that default, extending the library without forking ai-tasks.
14
-
15
- ---
16
-
17
- ## 2. Architecture: Default + Upstream Merge
18
-
19
- ```
20
- ┌──────────────────────────────────┐
21
- │ @skillices/skillix │ ← the core library (types, merge, lookup)
22
- │ exports: types, mergeRegistries │
23
- │ exports: findSkillix, listKeys │
24
- └──────────────────────────────────┘
25
-
26
- ┌──────────────────────────────────┐
27
- │ @skillices/skillix-security │ ← upstream skills package (example)
28
- │ exports: REGISTRY (partial) │
29
- └──────────────────────────────────┘
30
-
31
- ┌──────────────────────────────────┐
32
- │ @woroces/ai-tasks │
33
- │ • has DEFAULT_REGISTRY (built-in)│
34
- │ • imports @skillices/skillix │
35
- │ • optionally imports upstream │
36
- │ skills packages and merges │
37
- │ • uses merged registry at runtime│
38
- └──────────────────────────────────┘
39
- ```
40
-
41
- **Flow:**
42
-
43
- 1. ai-tasks defines `DEFAULT_REGISTRY` — its own built-in skills.
44
- 2. At init, ai-tasks calls `mergeRegistries(DEFAULT_REGISTRY, ...upstreamRegistries)` to produce the **active registry**.
45
- 3. Upstream skills packages are regular npm deps (`@skillices/skillix-security`, `@skillices/skillix-ops`, etc.) that each export a partial registry.
46
- 4. Merge rule: **upstream wins** on key collision (upstream is more specific / fresher). ai-tasks can invert this if needed.
47
-
48
- ---
49
-
50
- ## 3. Skillix Entry Shape
51
-
52
- Every skill in the registry is a `SkillixEntry`:
53
-
54
- ```ts
55
- interface SkillixEntry {
56
- /** Stable unique id (slug or UUID). */
57
- id: string;
58
-
59
- /** Skill key as used in RunTaskRequest.skillKey (e.g. "tasks/security-risk-summary"). */
60
- key: string;
61
-
62
- /** Human-readable name. */
63
- name: string;
64
-
65
- /** Short description — what this skill does. */
66
- description: string;
67
-
68
- /** The prompt template. The actual instructions sent to the LLM. */
69
- prompt: string;
70
-
71
- /**
72
- * Path to an external instructions file (relative to package root or absolute).
73
- * When set, the file content is the prompt; `prompt` field may be empty or a fallback.
74
- * Consumer loads the file at runtime or build time.
75
- */
76
- instructionsPath?: string;
77
-
78
- /** Optional tags for filtering and discovery. */
79
- tags?: string[];
80
-
81
- /** Default execution type when request doesn't specify one. */
82
- defaultExecutionType?: string;
83
-
84
- /** Optional JSON Schema for task input validation. */
85
- inputSchema?: object;
86
-
87
- /** Optional hints for execution bindings (model, db, etc.). */
88
- bindingHints?: Record<string, unknown>;
89
- }
90
- ```
91
-
92
- ### What matters most
93
-
94
- Every skillix entry **must** have either `prompt` (inline) or `instructionsPath` (file reference) — that is the skill's core content. Everything else is metadata and defaults.
95
-
96
- ---
97
-
98
- ## 4. Package API (`@skillices/skillix`)
99
-
100
- ### 4.1 Types
101
-
102
- ```ts
103
- export type { SkillixEntry };
104
- export type SkillixRegistry = Record<string, SkillixEntry>; // keyed by SkillixEntry.key
105
- ```
106
-
107
- ### 4.2 Registry Operations
108
-
109
- ```ts
110
- /** Merge multiple registries. Later registries win on key collision. */
111
- export function mergeRegistries(...registries: SkillixRegistry[]): SkillixRegistry;
112
-
113
- /** Find a skillix entry by key or taskId (normalized lookup). */
114
- export function findSkillix(key: string, registry: SkillixRegistry): SkillixEntry | undefined;
115
-
116
- /** List all keys in a registry. */
117
- export function listKeys(registry: SkillixRegistry): string[];
118
- ```
119
-
120
- ### 4.3 Key Normalization
121
-
122
- Consumers may pass `"security-risk-summary"` or `"tasks/security-risk-summary"`. `findSkillix` tries:
123
- 1. Exact match on `key`.
124
- 2. Prefixed with `tasks/`.
125
- 3. Prefixed with `skills/`.
126
-
127
- First match wins.
128
-
129
- ---
130
-
131
- ## 5. Upstream Skills Packages
132
-
133
- A skills package is any npm package under `@skillices/` that exports a `SkillixRegistry`:
134
-
135
- ```ts
136
- // @skillices/skillix-security/index.ts
137
- import type { SkillixRegistry } from "@skillices/skillix";
138
-
139
- export const REGISTRY: SkillixRegistry = {
140
- "tasks/security-risk-summary": {
141
- id: "security-risk-summary-v1",
142
- key: "tasks/security-risk-summary",
143
- name: "Security risk summary",
144
- description: "Summarize security risks from context.",
145
- prompt: "You are a security analyst. Given the following context:\n\n{{context}}\n\nProduce a risk summary...",
146
- instructionsPath: "instructions/security-risk-summary.md",
147
- tags: ["security", "summary"],
148
- defaultExecutionType: "DIRECT",
149
- },
150
- // ... more entries
151
- };
152
- ```
153
-
154
- That's it — flat registry export, no runtime logic. The package just holds skill definitions.
155
-
156
- ---
157
-
158
- ## 6. How ai-tasks Uses Skillix
159
-
160
- ### 6.1 Setup (once, at init)
161
-
162
- ```ts
163
- import { mergeRegistries, findSkillix } from "@skillices/skillix";
164
- import { REGISTRY as securitySkills } from "@skillices/skillix-security"; // upstream
165
- import { DEFAULT_REGISTRY } from "./skillix/defaults.js"; // built-in
166
-
167
- const ACTIVE_REGISTRY = mergeRegistries(DEFAULT_REGISTRY, securitySkills);
168
- ```
169
-
170
- ### 6.2 At runTask Time
171
-
172
- ```ts
173
- const skillix = findSkillix(request.skillKey, ACTIVE_REGISTRY);
174
-
175
- if (skillix) {
176
- // Apply defaults (request takes precedence)
177
- if (!request.executionType && skillix.defaultExecutionType) {
178
- request.executionType = skillix.defaultExecutionType;
179
- }
180
-
181
- // Resolve prompt: instructionsPath (file) takes priority, fallback to inline prompt
182
- const prompt = skillix.instructionsPath
183
- ? await loadInstructions(skillix.instructionsPath)
184
- : skillix.prompt;
185
-
186
- // Inject prompt into execution context
187
- request.context = prompt + (request.context ? "\n\n" + request.context : "");
188
- }
189
-
190
- // Continue with existing runTask flow...
191
- ```
192
-
193
- ### 6.3 When Skill Not in Registry
194
-
195
- No change to current behavior. ai-tasks continues as today — the request is used as-is. Skillix only adds defaults and prompt when the skill is found.
196
-
197
- ---
198
-
199
- ## 7. Built-In Default Registry in ai-tasks
200
-
201
- ai-tasks maintains its own `DEFAULT_REGISTRY` for skills that ship with it:
202
-
203
- ```
204
- src/skillix/
205
- defaults.ts ← DEFAULT_REGISTRY
206
- instructions/ ← .md files referenced by instructionsPath
207
- my-built-in.md
208
- ```
209
-
210
- This is not the `@skillices/skillix` package. It's ai-tasks' own set of skillix entries that exist without installing any upstream skills package.
211
-
212
- ---
213
-
214
- ## 8. Implementation Checklist
215
-
216
- ### Phase 1: Create `@skillices/skillix`
217
-
218
- - [ ] New repo under `Skillices` org.
219
- - [ ] Export `SkillixEntry`, `SkillixRegistry` types.
220
- - [ ] Implement `mergeRegistries`, `findSkillix`, `listKeys`.
221
- - [ ] Key normalization (exact → `tasks/` → `skills/` prefix fallback).
222
- - [ ] Publish to registry.
223
-
224
- ### Phase 2: Wire into ai-tasks
225
-
226
- - [ ] Add `@skillices/skillix` dependency.
227
- - [ ] Create `src/skillix/defaults.ts` with `DEFAULT_REGISTRY`.
228
- - [ ] Create `src/skillix/instructions/` for built-in prompt files.
229
- - [ ] In `task-sdk.ts`: resolve skillix entry, apply defaults + prompt.
230
- - [ ] Graceful fallback when skill not in registry.
231
-
232
- ### Phase 3: First upstream skills package
233
-
234
- - [ ] Create `@skillices/skillix-<domain>` (e.g. `skillix-security`).
235
- - [ ] Export partial `SkillixRegistry` with entries and instruction files.
236
- - [ ] In ai-tasks: add dep, merge at init.
237
-
238
- ---
239
-
240
- ## 9. Summary
241
-
242
- | Concern | Where |
243
- |---------|-------|
244
- | Types + merge + lookup | `@skillices/skillix` |
245
- | Built-in skills | `ai-tasks/src/skillix/defaults.ts` |
246
- | Upstream skill definitions | `@skillices/skillix-*` packages |
247
- | Prompt / instructions | `SkillixEntry.prompt` (inline) or `SkillixEntry.instructionsPath` (file) |
248
- | Merge strategy | `mergeRegistries()` — later wins, request always overrides |
249
- | Key resolution | `findSkillix()` — exact, then `tasks/`, then `skills/` prefix |