aios-core 4.2.13 → 4.2.15

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 (95) 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/pro/license/degradation.js +220 -220
  64. package/pro/license/errors.js +450 -450
  65. package/pro/license/feature-gate.js +354 -354
  66. package/pro/license/index.js +181 -181
  67. package/pro/license/license-cache.js +523 -523
  68. package/pro/license/license-crypto.js +303 -303
  69. package/scripts/package-synapse.js +5 -5
  70. package/scripts/validate-package-completeness.js +3 -3
  71. package/.aios-core/.session/current-session.json +0 -14
  72. package/.aios-core/data/registry-update-log.jsonl +0 -191
  73. package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +0 -335
  74. package/.aios-core/docs/component-creation-guide.md +0 -458
  75. package/.aios-core/docs/session-update-pattern.md +0 -307
  76. package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +0 -1963
  77. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +0 -1190
  78. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +0 -439
  79. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +0 -5398
  80. package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +0 -523
  81. package/.aios-core/docs/template-syntax.md +0 -267
  82. package/.aios-core/docs/troubleshooting-guide.md +0 -625
  83. package/.aios-core/infrastructure/tests/utilities-audit-results.json +0 -501
  84. package/.aios-core/manifests/agents.csv +0 -29
  85. package/.aios-core/manifests/tasks.csv +0 -198
  86. package/.aios-core/manifests/workers.csv +0 -204
  87. package/.claude/rules/agent-authority.md +0 -105
  88. package/.claude/rules/coderabbit-integration.md +0 -93
  89. package/.claude/rules/ids-principles.md +0 -112
  90. package/.claude/rules/story-lifecycle.md +0 -139
  91. package/.claude/rules/workflow-execution.md +0 -150
  92. package/scripts/glue/README.md +0 -355
  93. package/scripts/glue/compose-agent-prompt.cjs +0 -362
  94. /package/.claude/hooks/{precompact-session-digest.js → precompact-session-digest.cjs} +0 -0
  95. /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