aios-core 4.2.13 → 4.2.14

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 (97) hide show
  1. package/.aios-core/core/code-intel/helpers/dev-helper.js +206 -0
  2. package/.aios-core/core/registry/registry-schema.json +166 -166
  3. package/.aios-core/core/synapse/diagnostics/collectors/hook-collector.js +3 -3
  4. package/.aios-core/data/entity-registry.yaml +27 -0
  5. package/.aios-core/development/scripts/approval-workflow.js +642 -642
  6. package/.aios-core/development/scripts/backup-manager.js +606 -606
  7. package/.aios-core/development/scripts/branch-manager.js +389 -389
  8. package/.aios-core/development/scripts/code-quality-improver.js +1311 -1311
  9. package/.aios-core/development/scripts/commit-message-generator.js +849 -849
  10. package/.aios-core/development/scripts/conflict-resolver.js +674 -674
  11. package/.aios-core/development/scripts/dependency-analyzer.js +637 -637
  12. package/.aios-core/development/scripts/diff-generator.js +351 -351
  13. package/.aios-core/development/scripts/elicitation-engine.js +384 -384
  14. package/.aios-core/development/scripts/elicitation-session-manager.js +299 -299
  15. package/.aios-core/development/scripts/git-wrapper.js +461 -461
  16. package/.aios-core/development/scripts/manifest-preview.js +244 -244
  17. package/.aios-core/development/scripts/metrics-tracker.js +775 -775
  18. package/.aios-core/development/scripts/modification-validator.js +554 -554
  19. package/.aios-core/development/scripts/pattern-learner.js +1224 -1224
  20. package/.aios-core/development/scripts/performance-analyzer.js +757 -757
  21. package/.aios-core/development/scripts/refactoring-suggester.js +1138 -1138
  22. package/.aios-core/development/scripts/rollback-handler.js +530 -530
  23. package/.aios-core/development/scripts/security-checker.js +358 -358
  24. package/.aios-core/development/scripts/template-engine.js +239 -239
  25. package/.aios-core/development/scripts/template-validator.js +278 -278
  26. package/.aios-core/development/scripts/test-generator.js +843 -843
  27. package/.aios-core/development/scripts/transaction-manager.js +589 -589
  28. package/.aios-core/development/scripts/usage-tracker.js +673 -673
  29. package/.aios-core/development/scripts/validate-filenames.js +226 -226
  30. package/.aios-core/development/scripts/version-tracker.js +526 -526
  31. package/.aios-core/development/scripts/yaml-validator.js +396 -396
  32. package/.aios-core/development/tasks/build-autonomous.md +10 -4
  33. package/.aios-core/development/tasks/create-service.md +23 -0
  34. package/.aios-core/development/tasks/dev-develop-story.md +12 -6
  35. package/.aios-core/development/tasks/dev-suggest-refactoring.md +7 -1
  36. package/.aios-core/development/tasks/publish-npm.md +3 -3
  37. package/.aios-core/hooks/unified/README.md +1 -1
  38. package/.aios-core/install-manifest.yaml +65 -61
  39. package/.aios-core/manifests/schema/manifest-schema.json +190 -190
  40. package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
  41. package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
  42. package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
  43. package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
  44. package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
  45. package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
  46. package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
  47. package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
  48. package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
  49. package/.aios-core/product/templates/eslintrc-security.json +32 -32
  50. package/.aios-core/product/templates/github-actions-cd.yml +212 -212
  51. package/.aios-core/product/templates/github-actions-ci.yml +172 -172
  52. package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
  53. package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
  54. package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
  55. package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
  56. package/README.en.md +747 -0
  57. package/README.md +4 -2
  58. package/bin/aios.js +7 -4
  59. package/package.json +1 -1
  60. package/packages/aios-pro-cli/src/recover.js +1 -1
  61. package/packages/installer/src/wizard/ide-config-generator.js +6 -6
  62. package/packages/installer/src/wizard/pro-setup.js +3 -3
  63. package/scripts/package-synapse.js +5 -5
  64. package/scripts/validate-package-completeness.js +3 -3
  65. package/.aios-core/.session/current-session.json +0 -14
  66. package/.aios-core/data/registry-update-log.jsonl +0 -191
  67. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +0 -335
  68. package/.aios-core/docs/component-creation-guide.md +0 -458
  69. package/.aios-core/docs/session-update-pattern.md +0 -307
  70. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +0 -1963
  71. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +0 -1190
  72. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +0 -439
  73. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +0 -5398
  74. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +0 -523
  75. package/.aios-core/docs/template-syntax.md +0 -267
  76. package/.aios-core/docs/troubleshooting-guide.md +0 -625
  77. package/.aios-core/infrastructure/tests/utilities-audit-results.json +0 -501
  78. package/.aios-core/manifests/agents.csv +0 -29
  79. package/.aios-core/manifests/tasks.csv +0 -198
  80. package/.aios-core/manifests/workers.csv +0 -204
  81. package/.claude/rules/agent-authority.md +0 -105
  82. package/.claude/rules/coderabbit-integration.md +0 -93
  83. package/.claude/rules/ids-principles.md +0 -112
  84. package/.claude/rules/story-lifecycle.md +0 -139
  85. package/.claude/rules/workflow-execution.md +0 -150
  86. package/pro/README.md +0 -66
  87. package/pro/license/degradation.js +0 -220
  88. package/pro/license/errors.js +0 -450
  89. package/pro/license/feature-gate.js +0 -354
  90. package/pro/license/index.js +0 -181
  91. package/pro/license/license-api.js +0 -651
  92. package/pro/license/license-cache.js +0 -523
  93. package/pro/license/license-crypto.js +0 -303
  94. package/scripts/glue/README.md +0 -355
  95. package/scripts/glue/compose-agent-prompt.cjs +0 -362
  96. /package/.claude/hooks/{precompact-session-digest.js → precompact-session-digest.cjs} +0 -0
  97. /package/.claude/hooks/{synapse-engine.js → synapse-engine.cjs} +0 -0
@@ -0,0 +1,206 @@
1
+ 'use strict';
2
+
3
+ const { getEnricher, getClient, isCodeIntelAvailable } = require('../index');
4
+
5
+ // Risk level thresholds based on blast radius (reference count)
6
+ const RISK_THRESHOLDS = {
7
+ LOW_MAX: 4, // 0-4 refs = LOW
8
+ MEDIUM_MAX: 15, // 5-15 refs = MEDIUM
9
+ // >15 refs = HIGH
10
+ };
11
+
12
+ // Minimum references to suggest REUSE (>threshold = REUSE, <=threshold = ADAPT)
13
+ const REUSE_MIN_REFS = 2;
14
+
15
+ /**
16
+ * DevHelper — Code intelligence helper for @dev agent tasks.
17
+ *
18
+ * All functions return null gracefully when no provider is available.
19
+ * Never throws — safe to call unconditionally in task workflows.
20
+ */
21
+
22
+ /**
23
+ * Check for duplicates and similar code before writing a new file or function.
24
+ * Used by IDS Gate G4 in dev-develop-story and build-autonomous tasks.
25
+ *
26
+ * @param {string} fileName - Name of the file/function to be created
27
+ * @param {string} description - Description of what it does
28
+ * @returns {Promise<{duplicates: Object, references: Array, suggestion: string}|null>}
29
+ */
30
+ async function checkBeforeWriting(fileName, description) {
31
+ if (!isCodeIntelAvailable()) {
32
+ return null;
33
+ }
34
+
35
+ try {
36
+ const enricher = getEnricher();
37
+ const dupes = await enricher.detectDuplicates(description, { path: '.' });
38
+
39
+ // Also search for the fileName as a symbol reference
40
+ const client = getClient();
41
+ const nameRefs = await client.findReferences(fileName);
42
+
43
+ const hasMatches = (dupes && dupes.matches && dupes.matches.length > 0) ||
44
+ (nameRefs && nameRefs.length > 0);
45
+
46
+ if (!hasMatches) {
47
+ return null;
48
+ }
49
+
50
+ return {
51
+ duplicates: dupes,
52
+ references: nameRefs || [],
53
+ suggestion: _formatSuggestion(dupes, nameRefs),
54
+ };
55
+ } catch {
56
+ return null;
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Suggest reuse of an existing symbol instead of creating a new one.
62
+ * Searches for definitions and references to determine REUSE vs ADAPT.
63
+ *
64
+ * @param {string} symbol - Symbol name to search for
65
+ * @returns {Promise<{file: string, line: number, references: number, suggestion: string}|null>}
66
+ */
67
+ async function suggestReuse(symbol) {
68
+ if (!isCodeIntelAvailable()) {
69
+ return null;
70
+ }
71
+
72
+ try {
73
+ const client = getClient();
74
+ const [definition, refs] = await Promise.all([
75
+ client.findDefinition(symbol),
76
+ client.findReferences(symbol),
77
+ ]);
78
+
79
+ if (!definition && (!refs || refs.length === 0)) {
80
+ return null;
81
+ }
82
+
83
+ const refCount = refs ? refs.length : 0;
84
+ // REUSE if widely used, ADAPT if exists but lightly used
85
+ const suggestion = refCount > REUSE_MIN_REFS ? 'REUSE' : 'ADAPT';
86
+
87
+ return {
88
+ file: definition ? definition.file : (refs[0] ? refs[0].file : null),
89
+ line: definition ? definition.line : (refs[0] ? refs[0].line : null),
90
+ references: refCount,
91
+ suggestion,
92
+ };
93
+ } catch {
94
+ return null;
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Get naming conventions and patterns for a given path.
100
+ * Used to ensure new code follows existing project conventions.
101
+ *
102
+ * @param {string} targetPath - Path to analyze conventions for
103
+ * @returns {Promise<{patterns: Array, stats: Object}|null>}
104
+ */
105
+ async function getConventionsForPath(targetPath) {
106
+ if (!isCodeIntelAvailable()) {
107
+ return null;
108
+ }
109
+
110
+ try {
111
+ const enricher = getEnricher();
112
+ return await enricher.getConventions(targetPath);
113
+ } catch {
114
+ return null;
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Assess refactoring impact with blast radius and risk level.
120
+ * Used by dev-suggest-refactoring to show impact before changes.
121
+ *
122
+ * @param {string[]} files - Files to assess impact for
123
+ * @returns {Promise<{blastRadius: number, riskLevel: string, references: Array, complexity: Object}|null>}
124
+ */
125
+ async function assessRefactoringImpact(files) {
126
+ if (!isCodeIntelAvailable()) {
127
+ return null;
128
+ }
129
+
130
+ try {
131
+ const enricher = getEnricher();
132
+ const impact = await enricher.assessImpact(files);
133
+
134
+ if (!impact) {
135
+ return null;
136
+ }
137
+
138
+ return {
139
+ blastRadius: impact.blastRadius,
140
+ riskLevel: _calculateRiskLevel(impact.blastRadius),
141
+ references: impact.references,
142
+ complexity: impact.complexity,
143
+ };
144
+ } catch {
145
+ return null;
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Format a Code Intelligence Suggestion message from duplicate detection results.
151
+ * @param {Object|null} dupes - Result from detectDuplicates
152
+ * @param {Array|null} nameRefs - Result from findReferences
153
+ * @returns {string} Formatted suggestion message
154
+ * @private
155
+ */
156
+ function _formatSuggestion(dupes, nameRefs) {
157
+ const parts = [];
158
+
159
+ if (dupes && dupes.matches && dupes.matches.length > 0) {
160
+ parts.push(`Found ${dupes.matches.length} similar match(es) in codebase`);
161
+ const firstMatch = dupes.matches[0];
162
+ if (firstMatch.file) {
163
+ parts.push(`Closest: ${firstMatch.file}${firstMatch.line ? ':' + firstMatch.line : ''}`);
164
+ }
165
+ }
166
+
167
+ if (nameRefs && nameRefs.length > 0) {
168
+ parts.push(`Symbol already referenced in ${nameRefs.length} location(s)`);
169
+ const firstRef = nameRefs[0];
170
+ if (firstRef.file) {
171
+ parts.push(`First ref: ${firstRef.file}${firstRef.line ? ':' + firstRef.line : ''}`);
172
+ }
173
+ }
174
+
175
+ parts.push('Consider REUSE or ADAPT before creating new code (IDS Article IV-A)');
176
+
177
+ return parts.join('. ') + '.';
178
+ }
179
+
180
+ /**
181
+ * Calculate risk level from blast radius count.
182
+ * @param {number} blastRadius - Number of references affected
183
+ * @returns {string} 'LOW' | 'MEDIUM' | 'HIGH'
184
+ * @private
185
+ */
186
+ function _calculateRiskLevel(blastRadius) {
187
+ if (blastRadius <= RISK_THRESHOLDS.LOW_MAX) {
188
+ return 'LOW';
189
+ }
190
+ if (blastRadius <= RISK_THRESHOLDS.MEDIUM_MAX) {
191
+ return 'MEDIUM';
192
+ }
193
+ return 'HIGH';
194
+ }
195
+
196
+ module.exports = {
197
+ checkBeforeWriting,
198
+ suggestReuse,
199
+ getConventionsForPath,
200
+ assessRefactoringImpact,
201
+ // Exposed for testing
202
+ _formatSuggestion,
203
+ _calculateRiskLevel,
204
+ RISK_THRESHOLDS,
205
+ REUSE_MIN_REFS,
206
+ };
@@ -1,166 +1,166 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://aios.dev/schemas/service-registry.json",
4
- "title": "AIOS Service Registry Schema",
5
- "description": "Schema for the AIOS service registry containing workers, tasks, templates, and scripts",
6
- "type": "object",
7
- "required": ["version", "generated", "totalWorkers", "categories", "workers"],
8
- "properties": {
9
- "version": {
10
- "type": "string",
11
- "pattern": "^\\d+\\.\\d+\\.\\d+$",
12
- "description": "Semantic version of the registry"
13
- },
14
- "generated": {
15
- "type": "string",
16
- "format": "date-time",
17
- "description": "ISO 8601 timestamp when registry was generated"
18
- },
19
- "totalWorkers": {
20
- "type": "integer",
21
- "minimum": 97,
22
- "description": "Total count of workers in registry"
23
- },
24
- "categories": {
25
- "type": "object",
26
- "description": "Category summary with counts and subcategories",
27
- "additionalProperties": {
28
- "type": "object",
29
- "required": ["count"],
30
- "properties": {
31
- "count": {
32
- "type": "integer",
33
- "minimum": 0,
34
- "description": "Number of workers in this category"
35
- },
36
- "subcategories": {
37
- "type": "array",
38
- "items": { "type": "string" },
39
- "description": "List of subcategories within this category"
40
- },
41
- "description": {
42
- "type": "string",
43
- "description": "Human-readable description of the category"
44
- }
45
- }
46
- }
47
- },
48
- "workers": {
49
- "type": "array",
50
- "minItems": 97,
51
- "items": { "$ref": "#/definitions/worker" },
52
- "description": "Array of all registered workers"
53
- }
54
- },
55
- "definitions": {
56
- "worker": {
57
- "type": "object",
58
- "required": ["id", "name", "description", "category", "path", "taskFormat"],
59
- "properties": {
60
- "id": {
61
- "type": "string",
62
- "pattern": "^[a-z0-9-]+$",
63
- "description": "Unique kebab-case identifier"
64
- },
65
- "name": {
66
- "type": "string",
67
- "minLength": 1,
68
- "description": "Human-readable display name"
69
- },
70
- "description": {
71
- "type": "string",
72
- "minLength": 1,
73
- "description": "Brief description of worker purpose"
74
- },
75
- "category": {
76
- "type": "string",
77
- "enum": ["task", "template", "script", "checklist", "workflow", "data", "util"],
78
- "description": "Primary category of the worker"
79
- },
80
- "subcategory": {
81
- "type": "string",
82
- "description": "Subcategory for finer classification"
83
- },
84
- "inputs": {
85
- "type": "array",
86
- "items": { "type": "string" },
87
- "description": "List of input parameters with types"
88
- },
89
- "outputs": {
90
- "type": "array",
91
- "items": { "type": "string" },
92
- "description": "List of output parameters with types"
93
- },
94
- "tags": {
95
- "type": "array",
96
- "items": { "type": "string" },
97
- "description": "Searchable tags for discovery"
98
- },
99
- "path": {
100
- "type": "string",
101
- "pattern": "^\\.aios-core/",
102
- "description": "Relative path from project root"
103
- },
104
- "taskFormat": {
105
- "type": "string",
106
- "enum": ["TASK-FORMAT-V1", "TASK-FORMAT-V2", "SCRIPT", "TEMPLATE", "CHECKLIST", "WORKFLOW"],
107
- "description": "Format specification the worker follows"
108
- },
109
- "executorTypes": {
110
- "type": "array",
111
- "items": {
112
- "type": "string",
113
- "enum": ["Worker", "Agent", "Script", "Task", "CLI", "API"]
114
- },
115
- "description": "Types of executors that can run this worker"
116
- },
117
- "performance": {
118
- "type": "object",
119
- "properties": {
120
- "avgDuration": {
121
- "type": "string",
122
- "pattern": "^\\d+(\\.\\d+)?(ms|s|m)$",
123
- "description": "Average execution duration"
124
- },
125
- "cacheable": {
126
- "type": "boolean",
127
- "description": "Whether results can be cached"
128
- },
129
- "parallelizable": {
130
- "type": "boolean",
131
- "description": "Whether worker can run in parallel"
132
- }
133
- }
134
- },
135
- "dependencies": {
136
- "type": "array",
137
- "items": { "type": "string" },
138
- "description": "IDs of other workers this depends on"
139
- },
140
- "agents": {
141
- "type": "array",
142
- "items": { "type": "string" },
143
- "description": "Agent IDs that primarily use this worker"
144
- },
145
- "metadata": {
146
- "type": "object",
147
- "properties": {
148
- "source": {
149
- "type": "string",
150
- "description": "Module this worker originated from"
151
- },
152
- "addedVersion": {
153
- "type": "string",
154
- "description": "Version when worker was added"
155
- },
156
- "lastModified": {
157
- "type": "string",
158
- "format": "date-time",
159
- "description": "Last modification timestamp"
160
- }
161
- }
162
- }
163
- }
164
- }
165
- }
166
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://aios.dev/schemas/service-registry.json",
4
+ "title": "AIOS Service Registry Schema",
5
+ "description": "Schema for the AIOS service registry containing workers, tasks, templates, and scripts",
6
+ "type": "object",
7
+ "required": ["version", "generated", "totalWorkers", "categories", "workers"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
12
+ "description": "Semantic version of the registry"
13
+ },
14
+ "generated": {
15
+ "type": "string",
16
+ "format": "date-time",
17
+ "description": "ISO 8601 timestamp when registry was generated"
18
+ },
19
+ "totalWorkers": {
20
+ "type": "integer",
21
+ "minimum": 97,
22
+ "description": "Total count of workers in registry"
23
+ },
24
+ "categories": {
25
+ "type": "object",
26
+ "description": "Category summary with counts and subcategories",
27
+ "additionalProperties": {
28
+ "type": "object",
29
+ "required": ["count"],
30
+ "properties": {
31
+ "count": {
32
+ "type": "integer",
33
+ "minimum": 0,
34
+ "description": "Number of workers in this category"
35
+ },
36
+ "subcategories": {
37
+ "type": "array",
38
+ "items": { "type": "string" },
39
+ "description": "List of subcategories within this category"
40
+ },
41
+ "description": {
42
+ "type": "string",
43
+ "description": "Human-readable description of the category"
44
+ }
45
+ }
46
+ }
47
+ },
48
+ "workers": {
49
+ "type": "array",
50
+ "minItems": 97,
51
+ "items": { "$ref": "#/definitions/worker" },
52
+ "description": "Array of all registered workers"
53
+ }
54
+ },
55
+ "definitions": {
56
+ "worker": {
57
+ "type": "object",
58
+ "required": ["id", "name", "description", "category", "path", "taskFormat"],
59
+ "properties": {
60
+ "id": {
61
+ "type": "string",
62
+ "pattern": "^[a-z0-9-]+$",
63
+ "description": "Unique kebab-case identifier"
64
+ },
65
+ "name": {
66
+ "type": "string",
67
+ "minLength": 1,
68
+ "description": "Human-readable display name"
69
+ },
70
+ "description": {
71
+ "type": "string",
72
+ "minLength": 1,
73
+ "description": "Brief description of worker purpose"
74
+ },
75
+ "category": {
76
+ "type": "string",
77
+ "enum": ["task", "template", "script", "checklist", "workflow", "data", "util"],
78
+ "description": "Primary category of the worker"
79
+ },
80
+ "subcategory": {
81
+ "type": "string",
82
+ "description": "Subcategory for finer classification"
83
+ },
84
+ "inputs": {
85
+ "type": "array",
86
+ "items": { "type": "string" },
87
+ "description": "List of input parameters with types"
88
+ },
89
+ "outputs": {
90
+ "type": "array",
91
+ "items": { "type": "string" },
92
+ "description": "List of output parameters with types"
93
+ },
94
+ "tags": {
95
+ "type": "array",
96
+ "items": { "type": "string" },
97
+ "description": "Searchable tags for discovery"
98
+ },
99
+ "path": {
100
+ "type": "string",
101
+ "pattern": "^\\.aios-core/",
102
+ "description": "Relative path from project root"
103
+ },
104
+ "taskFormat": {
105
+ "type": "string",
106
+ "enum": ["TASK-FORMAT-V1", "TASK-FORMAT-V2", "SCRIPT", "TEMPLATE", "CHECKLIST", "WORKFLOW"],
107
+ "description": "Format specification the worker follows"
108
+ },
109
+ "executorTypes": {
110
+ "type": "array",
111
+ "items": {
112
+ "type": "string",
113
+ "enum": ["Worker", "Agent", "Script", "Task", "CLI", "API"]
114
+ },
115
+ "description": "Types of executors that can run this worker"
116
+ },
117
+ "performance": {
118
+ "type": "object",
119
+ "properties": {
120
+ "avgDuration": {
121
+ "type": "string",
122
+ "pattern": "^\\d+(\\.\\d+)?(ms|s|m)$",
123
+ "description": "Average execution duration"
124
+ },
125
+ "cacheable": {
126
+ "type": "boolean",
127
+ "description": "Whether results can be cached"
128
+ },
129
+ "parallelizable": {
130
+ "type": "boolean",
131
+ "description": "Whether worker can run in parallel"
132
+ }
133
+ }
134
+ },
135
+ "dependencies": {
136
+ "type": "array",
137
+ "items": { "type": "string" },
138
+ "description": "IDs of other workers this depends on"
139
+ },
140
+ "agents": {
141
+ "type": "array",
142
+ "items": { "type": "string" },
143
+ "description": "Agent IDs that primarily use this worker"
144
+ },
145
+ "metadata": {
146
+ "type": "object",
147
+ "properties": {
148
+ "source": {
149
+ "type": "string",
150
+ "description": "Module this worker originated from"
151
+ },
152
+ "addedVersion": {
153
+ "type": "string",
154
+ "description": "Version when worker was added"
155
+ },
156
+ "lastModified": {
157
+ "type": "string",
158
+ "format": "date-time",
159
+ "description": "Last modification timestamp"
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
@@ -72,7 +72,7 @@ function collectHookStatus(projectRoot) {
72
72
  }
73
73
 
74
74
  // Check 2: Hook file exists
75
- const hookPath = path.join(projectRoot, '.claude', 'hooks', 'synapse-engine.js');
75
+ const hookPath = path.join(projectRoot, '.claude', 'hooks', 'synapse-engine.cjs');
76
76
  const hookExists = fs.existsSync(hookPath);
77
77
 
78
78
  if (hookExists) {
@@ -82,7 +82,7 @@ function collectHookStatus(projectRoot) {
82
82
  checks.push({
83
83
  name: 'Hook file exists',
84
84
  status: 'PASS',
85
- detail: `.claude/hooks/synapse-engine.js (${lineCount} lines, ${stat.size} bytes)`,
85
+ detail: `.claude/hooks/synapse-engine.cjs (${lineCount} lines, ${stat.size} bytes)`,
86
86
  });
87
87
  } catch (error) {
88
88
  checks.push({
@@ -95,7 +95,7 @@ function collectHookStatus(projectRoot) {
95
95
  checks.push({
96
96
  name: 'Hook file exists',
97
97
  status: 'FAIL',
98
- detail: '.claude/hooks/synapse-engine.js not found',
98
+ detail: '.claude/hooks/synapse-engine.cjs not found',
99
99
  });
100
100
  }
101
101
 
@@ -5997,6 +5997,33 @@ entities:
5997
5997
  checksum: sha256:310884d94b81be976a346987822306a16a73ba812c08c3b805f4a03216ffef38
5998
5998
  lastVerified: '2026-02-15T19:28:17.743Z'
5999
5999
  modules:
6000
+ dev-helper:
6001
+ path: .aios-core/core/code-intel/helpers/dev-helper.js
6002
+ type: module
6003
+ purpose: Code intelligence helper for @dev agent tasks - IDS G4 automation, duplicate detection, conventions, blast radius
6004
+ keywords:
6005
+ - code-intel
6006
+ - dev-helper
6007
+ - ids-g4
6008
+ - duplicate-detection
6009
+ - blast-radius
6010
+ - conventions
6011
+ - reuse
6012
+ usedBy:
6013
+ - dev-develop-story
6014
+ - create-service
6015
+ - dev-suggest-refactoring
6016
+ - build-autonomous
6017
+ dependencies:
6018
+ - code-intel
6019
+ adaptability:
6020
+ score: 0.7
6021
+ constraints:
6022
+ - Requires code-intel module (NOG-1)
6023
+ extensionPoints:
6024
+ - Additional helper functions for other agents
6025
+ checksum: ''
6026
+ lastVerified: '2026-02-16T00:00:00.000Z'
6000
6027
  registry-syncer:
6001
6028
  path: .aios-core/core/code-intel/registry-syncer.js
6002
6029
  type: module