sqlew 3.5.3 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +247 -1772
- package/README.md +70 -304
- package/assets/config.example.toml +106 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mysql-adapter.d.ts +31 -0
- package/dist/adapters/mysql-adapter.d.ts.map +1 -0
- package/dist/adapters/mysql-adapter.js +63 -0
- package/dist/adapters/mysql-adapter.js.map +1 -0
- package/dist/adapters/postgresql-adapter.d.ts +31 -0
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
- package/dist/adapters/postgresql-adapter.js +63 -0
- package/dist/adapters/postgresql-adapter.js.map +1 -0
- package/dist/adapters/sqlite-adapter.d.ts +37 -0
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-adapter.js +129 -0
- package/dist/adapters/sqlite-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +33 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli.js +55 -54
- package/dist/cli.js.map +1 -1
- package/dist/config/example-generator.d.ts +11 -0
- package/dist/config/example-generator.d.ts.map +1 -0
- package/dist/config/example-generator.js +48 -0
- package/dist/config/example-generator.js.map +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +11 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database.d.ts +56 -121
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +266 -414
- package/dist/database.js.map +1 -1
- package/dist/index.js +329 -245
- package/dist/index.js.map +1 -1
- package/dist/knexfile.d.ts +6 -0
- package/dist/knexfile.d.ts.map +1 -0
- package/dist/knexfile.js +85 -0
- package/dist/knexfile.js.map +1 -0
- package/dist/migrations/add-help-system-tables.d.ts +35 -0
- package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
- package/dist/migrations/add-help-system-tables.js +206 -0
- package/dist/migrations/add-help-system-tables.js.map +1 -0
- package/dist/migrations/add-token-tracking.d.ts +28 -0
- package/dist/migrations/add-token-tracking.d.ts.map +1 -0
- package/dist/migrations/add-token-tracking.js +108 -0
- package/dist/migrations/add-token-tracking.js.map +1 -0
- package/dist/migrations/index.d.ts +25 -12
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +147 -20
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
- package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
- package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
- package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
- package/dist/migrations/knex/20251025070349_create_views.js +143 -0
- package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.d.ts +14 -0
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.js +34 -0
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.js.map +1 -0
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.d.ts +4 -0
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.js +24 -0
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
- package/dist/migrations/knex/20251027020000_update_agent_reusability.d.ts +16 -0
- package/dist/migrations/knex/20251027020000_update_agent_reusability.d.ts.map +1 -0
- package/dist/migrations/knex/20251027020000_update_agent_reusability.js +27 -0
- package/dist/migrations/knex/20251027020000_update_agent_reusability.js.map +1 -0
- package/dist/migrations/seed-help-data.d.ts +48 -0
- package/dist/migrations/seed-help-data.d.ts.map +1 -0
- package/dist/migrations/seed-help-data.js +1466 -0
- package/dist/migrations/seed-help-data.js.map +1 -0
- package/dist/migrations/seed-tool-metadata.d.ts +24 -0
- package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
- package/dist/migrations/seed-tool-metadata.js +392 -0
- package/dist/migrations/seed-tool-metadata.js.map +1 -0
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
- package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
- package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -1
- package/dist/tests/agent-reuse.test.d.ts +6 -0
- package/dist/tests/agent-reuse.test.d.ts.map +1 -0
- package/dist/tests/agent-reuse.test.js +242 -0
- package/dist/tests/agent-reuse.test.js.map +1 -0
- package/dist/tests/all-features.test.d.ts +7 -0
- package/dist/tests/all-features.test.d.ts.map +1 -0
- package/dist/tests/all-features.test.js +514 -0
- package/dist/tests/all-features.test.js.map +1 -0
- package/dist/tests/git-aware-completion.test.js +89 -70
- package/dist/tests/git-aware-completion.test.js.map +1 -1
- package/dist/tests/help-system.test.d.ts +23 -0
- package/dist/tests/help-system.test.d.ts.map +1 -0
- package/dist/tests/help-system.test.js +374 -0
- package/dist/tests/help-system.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.js +92 -78
- package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-partial.test.js +106 -95
- package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-persistence.test.js +115 -97
- package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-safety.test.js +124 -103
- package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -1
- package/dist/tests/tasks.dependencies.test.js +338 -307
- package/dist/tests/tasks.dependencies.test.js.map +1 -1
- package/dist/tests/tasks.link-file-backward-compat.test.js +116 -104
- package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-action.test.js +122 -101
- package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-parameter.test.js +105 -94
- package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -1
- package/dist/tests/two-step-git-completion.test.js +176 -133
- package/dist/tests/two-step-git-completion.test.js.map +1 -1
- package/dist/tests/vcs-staging.test.js +1 -1
- package/dist/tests/vcs-staging.test.js.map +1 -1
- package/dist/tools/config.d.ts +9 -6
- package/dist/tools/config.d.ts.map +1 -1
- package/dist/tools/config.js +16 -14
- package/dist/tools/config.js.map +1 -1
- package/dist/tools/constraints.d.ts +10 -7
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +73 -51
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts +36 -33
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +441 -340
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.d.ts +12 -9
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +173 -95
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/help-queries.d.ts +130 -0
- package/dist/tools/help-queries.d.ts.map +1 -0
- package/dist/tools/help-queries.js +393 -0
- package/dist/tools/help-queries.js.map +1 -0
- package/dist/tools/messaging.d.ts +14 -11
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +239 -133
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/tasks.d.ts +18 -16
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +519 -442
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts +14 -11
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +90 -122
- package/dist/tools/utils.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/activity-logging.d.ts +114 -0
- package/dist/utils/activity-logging.d.ts.map +1 -0
- package/dist/utils/activity-logging.js +162 -0
- package/dist/utils/activity-logging.js.map +1 -0
- package/dist/utils/batch.d.ts +2 -2
- package/dist/utils/batch.d.ts.map +1 -1
- package/dist/utils/batch.js +8 -8
- package/dist/utils/batch.js.map +1 -1
- package/dist/utils/cleanup.d.ts +24 -14
- package/dist/utils/cleanup.d.ts.map +1 -1
- package/dist/utils/cleanup.js +37 -27
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +99 -0
- package/dist/utils/debug-logger.d.ts.map +1 -0
- package/dist/utils/debug-logger.js +267 -0
- package/dist/utils/debug-logger.js.map +1 -0
- package/dist/utils/error-handler.d.ts +28 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +121 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/help-tracking.d.ts +55 -0
- package/dist/utils/help-tracking.d.ts.map +1 -0
- package/dist/utils/help-tracking.js +88 -0
- package/dist/utils/help-tracking.js.map +1 -0
- package/dist/utils/param-parser.d.ts +23 -0
- package/dist/utils/param-parser.d.ts.map +1 -0
- package/dist/utils/param-parser.js +52 -0
- package/dist/utils/param-parser.js.map +1 -0
- package/dist/utils/retention.d.ts +17 -7
- package/dist/utils/retention.d.ts.map +1 -1
- package/dist/utils/retention.js +31 -12
- package/dist/utils/retention.js.map +1 -1
- package/dist/utils/task-stale-detection.d.ts +15 -13
- package/dist/utils/task-stale-detection.d.ts.map +1 -1
- package/dist/utils/task-stale-detection.js +100 -302
- package/dist/utils/task-stale-detection.js.map +1 -1
- package/dist/utils/token-estimation.d.ts +72 -0
- package/dist/utils/token-estimation.d.ts.map +1 -0
- package/dist/utils/token-estimation.js +71 -0
- package/dist/utils/token-estimation.js.map +1 -0
- package/dist/utils/token-logging.d.ts +48 -0
- package/dist/utils/token-logging.d.ts.map +1 -0
- package/dist/utils/token-logging.js +112 -0
- package/dist/utils/token-logging.js.map +1 -0
- package/dist/utils/view-queries.d.ts +34 -0
- package/dist/utils/view-queries.d.ts.map +1 -0
- package/dist/utils/view-queries.js +192 -0
- package/dist/utils/view-queries.js.map +1 -0
- package/dist/watcher/file-watcher.d.ts.map +1 -1
- package/dist/watcher/file-watcher.js +25 -11
- package/dist/watcher/file-watcher.js.map +1 -1
- package/docs/BEST_PRACTICES.md +56 -448
- package/docs/MIGRATION_v3.6.0.md +170 -0
- package/docs/SHARED_CONCEPTS.md +63 -208
- package/docs/TASK_OVERVIEW.md +2 -2
- package/docs/TOOL_SELECTION.md +41 -248
- package/package.json +17 -4
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Transaction Tables (t_ prefix) - Core Data
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Decisions (String Values)
|
|
6
|
+
await knex.schema.createTable('t_decisions', (table) => {
|
|
7
|
+
table.integer('key_id').primary();
|
|
8
|
+
table.foreign('key_id').references('m_context_keys.id');
|
|
9
|
+
table.text('value').notNullable();
|
|
10
|
+
table.integer('agent_id');
|
|
11
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
12
|
+
table.integer('layer_id');
|
|
13
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
14
|
+
table.string('version', 20).defaultTo('1.0.0');
|
|
15
|
+
table.integer('status').defaultTo(1); // 1=active, 2=deprecated, 3=draft
|
|
16
|
+
table.integer('ts').notNullable();
|
|
17
|
+
});
|
|
18
|
+
// Decisions (Numeric Values)
|
|
19
|
+
await knex.schema.createTable('t_decisions_numeric', (table) => {
|
|
20
|
+
table.integer('key_id').primary();
|
|
21
|
+
table.foreign('key_id').references('m_context_keys.id');
|
|
22
|
+
table.double('value').notNullable();
|
|
23
|
+
table.integer('agent_id');
|
|
24
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
25
|
+
table.integer('layer_id');
|
|
26
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
27
|
+
table.string('version', 20).defaultTo('1.0.0');
|
|
28
|
+
table.integer('status').defaultTo(1);
|
|
29
|
+
table.integer('ts').notNullable();
|
|
30
|
+
});
|
|
31
|
+
// Decision Version History
|
|
32
|
+
await knex.schema.createTable('t_decision_history', (table) => {
|
|
33
|
+
table.increments('id').primary();
|
|
34
|
+
table.integer('key_id');
|
|
35
|
+
table.foreign('key_id').references('m_context_keys.id');
|
|
36
|
+
table.string('version', 20).notNullable();
|
|
37
|
+
table.text('value').notNullable();
|
|
38
|
+
table.integer('agent_id');
|
|
39
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
40
|
+
table.integer('ts').notNullable();
|
|
41
|
+
});
|
|
42
|
+
// Decision Tagging (Many-to-Many)
|
|
43
|
+
await knex.schema.createTable('t_decision_tags', (table) => {
|
|
44
|
+
table.integer('decision_key_id');
|
|
45
|
+
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
46
|
+
table.integer('tag_id');
|
|
47
|
+
table.foreign('tag_id').references('m_tags.id');
|
|
48
|
+
table.primary(['decision_key_id', 'tag_id']);
|
|
49
|
+
});
|
|
50
|
+
// Decision Scopes (Many-to-Many)
|
|
51
|
+
await knex.schema.createTable('t_decision_scopes', (table) => {
|
|
52
|
+
table.integer('decision_key_id');
|
|
53
|
+
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
54
|
+
table.integer('scope_id');
|
|
55
|
+
table.foreign('scope_id').references('m_scopes.id');
|
|
56
|
+
table.primary(['decision_key_id', 'scope_id']);
|
|
57
|
+
});
|
|
58
|
+
// Agent Messages
|
|
59
|
+
await knex.schema.createTable('t_agent_messages', (table) => {
|
|
60
|
+
table.increments('id').primary();
|
|
61
|
+
table.integer('from_agent_id');
|
|
62
|
+
table.foreign('from_agent_id').references('m_agents.id');
|
|
63
|
+
table.integer('to_agent_id');
|
|
64
|
+
table.foreign('to_agent_id').references('m_agents.id');
|
|
65
|
+
table.integer('msg_type').notNullable(); // 1=decision, 2=warning, 3=request, 4=info
|
|
66
|
+
table.integer('priority').defaultTo(2); // 1=low, 2=medium, 3=high, 4=critical
|
|
67
|
+
table.text('message').notNullable();
|
|
68
|
+
table.text('payload'); // JSON stored as TEXT
|
|
69
|
+
table.boolean('read').defaultTo(false);
|
|
70
|
+
table.integer('ts').notNullable();
|
|
71
|
+
});
|
|
72
|
+
// File Change Tracking
|
|
73
|
+
await knex.schema.createTable('t_file_changes', (table) => {
|
|
74
|
+
table.increments('id').primary();
|
|
75
|
+
table.integer('file_id');
|
|
76
|
+
table.foreign('file_id').references('m_files.id');
|
|
77
|
+
table.integer('change_type').notNullable(); // 1=created, 2=modified, 3=deleted
|
|
78
|
+
table.integer('agent_id');
|
|
79
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
80
|
+
table.integer('layer_id');
|
|
81
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
82
|
+
table.text('description');
|
|
83
|
+
table.integer('ts').notNullable();
|
|
84
|
+
});
|
|
85
|
+
// Constraints
|
|
86
|
+
await knex.schema.createTable('t_constraints', (table) => {
|
|
87
|
+
table.increments('id').primary();
|
|
88
|
+
table.integer('category_id');
|
|
89
|
+
table.foreign('category_id').references('m_constraint_categories.id');
|
|
90
|
+
table.integer('layer_id');
|
|
91
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
92
|
+
table.text('constraint_text').notNullable();
|
|
93
|
+
table.integer('priority').defaultTo(2); // 1=low, 2=medium, 3=high, 4=critical
|
|
94
|
+
table.boolean('active').defaultTo(true);
|
|
95
|
+
table.integer('agent_id');
|
|
96
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
97
|
+
table.integer('ts').notNullable();
|
|
98
|
+
});
|
|
99
|
+
// Constraint Tagging (Many-to-Many)
|
|
100
|
+
await knex.schema.createTable('t_constraint_tags', (table) => {
|
|
101
|
+
table.integer('constraint_id');
|
|
102
|
+
table.foreign('constraint_id').references('t_constraints.id');
|
|
103
|
+
table.integer('tag_id');
|
|
104
|
+
table.foreign('tag_id').references('m_tags.id');
|
|
105
|
+
table.primary(['constraint_id', 'tag_id']);
|
|
106
|
+
});
|
|
107
|
+
// Activity Log
|
|
108
|
+
await knex.schema.createTable('t_activity_log', (table) => {
|
|
109
|
+
table.increments('id').primary();
|
|
110
|
+
table.integer('agent_id');
|
|
111
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
112
|
+
table.string('action_type', 50).notNullable();
|
|
113
|
+
table.string('target', 500);
|
|
114
|
+
table.integer('layer_id');
|
|
115
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
116
|
+
table.text('details'); // JSON stored as TEXT
|
|
117
|
+
table.integer('ts').notNullable();
|
|
118
|
+
});
|
|
119
|
+
// Decision Templates
|
|
120
|
+
await knex.schema.createTable('t_decision_templates', (table) => {
|
|
121
|
+
table.increments('id').primary();
|
|
122
|
+
table.string('name', 200).unique().notNullable();
|
|
123
|
+
table.text('description');
|
|
124
|
+
table.text('defaults'); // JSON
|
|
125
|
+
table.text('required_fields'); // JSON
|
|
126
|
+
});
|
|
127
|
+
// Decision Context (v3.2.2)
|
|
128
|
+
await knex.schema.createTable('t_decision_context', (table) => {
|
|
129
|
+
table.increments('id').primary();
|
|
130
|
+
table.integer('decision_key_id');
|
|
131
|
+
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
132
|
+
table.text('rationale');
|
|
133
|
+
table.text('alternatives_considered'); // JSON array
|
|
134
|
+
table.text('tradeoffs'); // JSON object
|
|
135
|
+
table.integer('decision_date');
|
|
136
|
+
table.integer('agent_id');
|
|
137
|
+
table.foreign('agent_id').references('m_agents.id');
|
|
138
|
+
table.integer('ts').notNullable();
|
|
139
|
+
});
|
|
140
|
+
// Tasks (v3.0.0 Kanban system)
|
|
141
|
+
await knex.schema.createTable('t_tasks', (table) => {
|
|
142
|
+
table.increments('id').primary();
|
|
143
|
+
table.string('title', 500).notNullable();
|
|
144
|
+
table.integer('status_id').defaultTo(1); // 1=todo
|
|
145
|
+
table.foreign('status_id').references('m_task_statuses.id');
|
|
146
|
+
table.integer('priority').defaultTo(2);
|
|
147
|
+
table.integer('assigned_agent_id');
|
|
148
|
+
table.foreign('assigned_agent_id').references('m_agents.id');
|
|
149
|
+
table.integer('created_by_agent_id');
|
|
150
|
+
table.foreign('created_by_agent_id').references('m_agents.id');
|
|
151
|
+
table.integer('layer_id');
|
|
152
|
+
table.foreign('layer_id').references('m_layers.id');
|
|
153
|
+
table.integer('created_ts').notNullable();
|
|
154
|
+
table.integer('updated_ts').notNullable();
|
|
155
|
+
table.integer('completed_ts');
|
|
156
|
+
});
|
|
157
|
+
// Task Details
|
|
158
|
+
await knex.schema.createTable('t_task_details', (table) => {
|
|
159
|
+
table.integer('task_id').primary();
|
|
160
|
+
table.foreign('task_id').references('t_tasks.id');
|
|
161
|
+
table.text('description');
|
|
162
|
+
table.text('acceptance_criteria');
|
|
163
|
+
table.text('acceptance_criteria_json'); // JSON
|
|
164
|
+
table.text('notes');
|
|
165
|
+
});
|
|
166
|
+
// Task Tagging (Many-to-Many)
|
|
167
|
+
await knex.schema.createTable('t_task_tags', (table) => {
|
|
168
|
+
table.integer('task_id');
|
|
169
|
+
table.foreign('task_id').references('t_tasks.id');
|
|
170
|
+
table.integer('tag_id');
|
|
171
|
+
table.foreign('tag_id').references('m_tags.id');
|
|
172
|
+
table.primary(['task_id', 'tag_id']);
|
|
173
|
+
});
|
|
174
|
+
// Task-Decision Links
|
|
175
|
+
await knex.schema.createTable('t_task_decision_links', (table) => {
|
|
176
|
+
table.integer('task_id');
|
|
177
|
+
table.foreign('task_id').references('t_tasks.id');
|
|
178
|
+
table.integer('decision_key_id');
|
|
179
|
+
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
180
|
+
table.primary(['task_id', 'decision_key_id']);
|
|
181
|
+
});
|
|
182
|
+
// Task-Constraint Links
|
|
183
|
+
await knex.schema.createTable('t_task_constraint_links', (table) => {
|
|
184
|
+
table.integer('task_id');
|
|
185
|
+
table.foreign('task_id').references('t_tasks.id');
|
|
186
|
+
table.integer('constraint_id');
|
|
187
|
+
table.foreign('constraint_id').references('t_constraints.id');
|
|
188
|
+
table.primary(['task_id', 'constraint_id']);
|
|
189
|
+
});
|
|
190
|
+
// Task-File Links
|
|
191
|
+
await knex.schema.createTable('t_task_file_links', (table) => {
|
|
192
|
+
table.integer('task_id');
|
|
193
|
+
table.foreign('task_id').references('t_tasks.id');
|
|
194
|
+
table.integer('file_id');
|
|
195
|
+
table.foreign('file_id').references('m_files.id');
|
|
196
|
+
table.primary(['task_id', 'file_id']);
|
|
197
|
+
});
|
|
198
|
+
// Task Dependencies (v3.2.0) - with CASCADE delete
|
|
199
|
+
// Note: Using raw SQL because Knex doesn't properly generate ON DELETE CASCADE for SQLite
|
|
200
|
+
await knex.raw(`
|
|
201
|
+
CREATE TABLE t_task_dependencies (
|
|
202
|
+
task_id INTEGER,
|
|
203
|
+
depends_on_task_id INTEGER,
|
|
204
|
+
created_ts INTEGER NOT NULL,
|
|
205
|
+
PRIMARY KEY (task_id, depends_on_task_id),
|
|
206
|
+
FOREIGN KEY (task_id) REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
207
|
+
FOREIGN KEY (depends_on_task_id) REFERENCES t_tasks(id) ON DELETE CASCADE
|
|
208
|
+
)
|
|
209
|
+
`);
|
|
210
|
+
console.log('✅ Transaction tables created successfully');
|
|
211
|
+
}
|
|
212
|
+
export async function down(knex) {
|
|
213
|
+
// Drop in reverse order to handle foreign keys
|
|
214
|
+
await knex.schema.dropTableIfExists('t_task_dependencies');
|
|
215
|
+
await knex.schema.dropTableIfExists('t_task_file_links');
|
|
216
|
+
await knex.schema.dropTableIfExists('t_task_constraint_links');
|
|
217
|
+
await knex.schema.dropTableIfExists('t_task_decision_links');
|
|
218
|
+
await knex.schema.dropTableIfExists('t_task_tags');
|
|
219
|
+
await knex.schema.dropTableIfExists('t_task_details');
|
|
220
|
+
await knex.schema.dropTableIfExists('t_tasks');
|
|
221
|
+
await knex.schema.dropTableIfExists('t_decision_context');
|
|
222
|
+
await knex.schema.dropTableIfExists('t_decision_templates');
|
|
223
|
+
await knex.schema.dropTableIfExists('t_activity_log');
|
|
224
|
+
await knex.schema.dropTableIfExists('t_constraint_tags');
|
|
225
|
+
await knex.schema.dropTableIfExists('t_constraints');
|
|
226
|
+
await knex.schema.dropTableIfExists('t_file_changes');
|
|
227
|
+
await knex.schema.dropTableIfExists('t_agent_messages');
|
|
228
|
+
await knex.schema.dropTableIfExists('t_decision_scopes');
|
|
229
|
+
await knex.schema.dropTableIfExists('t_decision_tags');
|
|
230
|
+
await knex.schema.dropTableIfExists('t_decision_history');
|
|
231
|
+
await knex.schema.dropTableIfExists('t_decisions_numeric');
|
|
232
|
+
await knex.schema.dropTableIfExists('t_decisions');
|
|
233
|
+
console.log('✅ Transaction tables dropped successfully');
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=20251025021152_create_transaction_tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021152_create_transaction_tables.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021351_create_indexes.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpD"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Indexes for Performance Optimization
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Decisions indexes
|
|
6
|
+
await knex.raw('CREATE INDEX idx_decisions_ts ON t_decisions(ts DESC)');
|
|
7
|
+
await knex.raw('CREATE INDEX idx_decisions_layer ON t_decisions(layer_id)');
|
|
8
|
+
await knex.raw('CREATE INDEX idx_decisions_agent ON t_decisions(agent_id)');
|
|
9
|
+
await knex.raw('CREATE INDEX idx_decisions_status ON t_decisions(status)');
|
|
10
|
+
// Decisions numeric indexes
|
|
11
|
+
await knex.raw('CREATE INDEX idx_decisions_numeric_ts ON t_decisions_numeric(ts DESC)');
|
|
12
|
+
await knex.raw('CREATE INDEX idx_decisions_numeric_layer ON t_decisions_numeric(layer_id)');
|
|
13
|
+
// Messages indexes
|
|
14
|
+
await knex.raw('CREATE INDEX idx_messages_ts ON t_agent_messages(ts DESC)');
|
|
15
|
+
await knex.raw('CREATE INDEX idx_messages_to_agent ON t_agent_messages(to_agent_id, read)');
|
|
16
|
+
await knex.raw('CREATE INDEX idx_messages_priority ON t_agent_messages(priority DESC)');
|
|
17
|
+
// File changes indexes
|
|
18
|
+
await knex.raw('CREATE INDEX idx_file_changes_ts ON t_file_changes(ts DESC)');
|
|
19
|
+
await knex.raw('CREATE INDEX idx_file_changes_file ON t_file_changes(file_id)');
|
|
20
|
+
await knex.raw('CREATE INDEX idx_file_changes_layer ON t_file_changes(layer_id)');
|
|
21
|
+
// Constraints indexes
|
|
22
|
+
await knex.raw('CREATE INDEX idx_constraints_active ON t_constraints(active)');
|
|
23
|
+
await knex.raw('CREATE INDEX idx_constraints_layer ON t_constraints(layer_id)');
|
|
24
|
+
await knex.raw('CREATE INDEX idx_constraints_priority ON t_constraints(priority DESC)');
|
|
25
|
+
// Activity log indexes
|
|
26
|
+
await knex.raw('CREATE INDEX idx_activity_log_ts ON t_activity_log(ts DESC)');
|
|
27
|
+
await knex.raw('CREATE INDEX idx_activity_log_agent ON t_activity_log(agent_id)');
|
|
28
|
+
// Task indexes
|
|
29
|
+
await knex.raw('CREATE INDEX idx_tasks_status ON t_tasks(status_id)');
|
|
30
|
+
await knex.raw('CREATE INDEX idx_tasks_priority ON t_tasks(priority DESC)');
|
|
31
|
+
await knex.raw('CREATE INDEX idx_tasks_agent ON t_tasks(assigned_agent_id)');
|
|
32
|
+
await knex.raw('CREATE INDEX idx_tasks_created_ts ON t_tasks(created_ts DESC)');
|
|
33
|
+
await knex.raw('CREATE INDEX idx_tasks_updated_ts ON t_tasks(updated_ts DESC)');
|
|
34
|
+
console.log('✅ Indexes created successfully');
|
|
35
|
+
}
|
|
36
|
+
export async function down(knex) {
|
|
37
|
+
// Drop all indexes
|
|
38
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_updated_ts');
|
|
39
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_created_ts');
|
|
40
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_agent');
|
|
41
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_priority');
|
|
42
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_status');
|
|
43
|
+
await knex.raw('DROP INDEX IF EXISTS idx_activity_log_agent');
|
|
44
|
+
await knex.raw('DROP INDEX IF EXISTS idx_activity_log_ts');
|
|
45
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_priority');
|
|
46
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_layer');
|
|
47
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_active');
|
|
48
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_layer');
|
|
49
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_file');
|
|
50
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_ts');
|
|
51
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_priority');
|
|
52
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
|
|
53
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_ts');
|
|
54
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_layer');
|
|
55
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_ts');
|
|
56
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_status');
|
|
57
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_agent');
|
|
58
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_layer');
|
|
59
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_ts');
|
|
60
|
+
console.log('✅ Indexes dropped successfully');
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=20251025021351_create_indexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021351_create_indexes.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,uCAAuC;IACvC,+EAA+E;IAE/E,oBAAoB;IACpB,MAAM,IAAI,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACxE,MAAM,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IAE3E,4BAA4B;IAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACxF,MAAM,IAAI,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IAE5F,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IAC5F,MAAM,IAAI,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IAExF,uBAAuB;IACvB,MAAM,IAAI,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC9E,MAAM,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAChF,MAAM,IAAI,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAElF,sBAAsB;IACtB,MAAM,IAAI,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC/E,MAAM,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAChF,MAAM,IAAI,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IAExF,uBAAuB;IACvB,MAAM,IAAI,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC9E,MAAM,IAAI,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAElF,eAAe;IACf,MAAM,IAAI,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACtE,MAAM,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC7E,MAAM,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAChF,MAAM,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAEhF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IACnE,MAAM,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021416_seed_master_data.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Initial Data Seeding
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Seed layers (5 predefined architecture layers)
|
|
6
|
+
await knex('m_layers').insert([
|
|
7
|
+
{ id: 1, name: 'presentation' },
|
|
8
|
+
{ id: 2, name: 'business' },
|
|
9
|
+
{ id: 3, name: 'data' },
|
|
10
|
+
{ id: 4, name: 'infrastructure' },
|
|
11
|
+
{ id: 5, name: 'cross-cutting' },
|
|
12
|
+
]);
|
|
13
|
+
// Seed constraint categories
|
|
14
|
+
await knex('m_constraint_categories').insert([
|
|
15
|
+
{ name: 'architecture' },
|
|
16
|
+
{ name: 'security' },
|
|
17
|
+
{ name: 'performance' },
|
|
18
|
+
{ name: 'compatibility' },
|
|
19
|
+
{ name: 'maintainability' },
|
|
20
|
+
]);
|
|
21
|
+
// Seed common tags
|
|
22
|
+
await knex('m_tags').insert([
|
|
23
|
+
{ name: 'authentication' },
|
|
24
|
+
{ name: 'authorization' },
|
|
25
|
+
{ name: 'validation' },
|
|
26
|
+
{ name: 'error-handling' },
|
|
27
|
+
{ name: 'logging' },
|
|
28
|
+
{ name: 'performance' },
|
|
29
|
+
{ name: 'security' },
|
|
30
|
+
{ name: 'testing' },
|
|
31
|
+
]);
|
|
32
|
+
// Seed configuration defaults
|
|
33
|
+
await knex('m_config').insert([
|
|
34
|
+
{ key: 'autodelete_ignore_weekend', value: '1' },
|
|
35
|
+
{ key: 'autodelete_message_hours', value: '24' },
|
|
36
|
+
{ key: 'autodelete_file_history_days', value: '7' },
|
|
37
|
+
]);
|
|
38
|
+
// Seed task statuses
|
|
39
|
+
await knex('m_task_statuses').insert([
|
|
40
|
+
{ id: 1, name: 'todo' },
|
|
41
|
+
{ id: 2, name: 'in_progress' },
|
|
42
|
+
{ id: 3, name: 'waiting_review' },
|
|
43
|
+
{ id: 4, name: 'blocked' },
|
|
44
|
+
{ id: 5, name: 'done' },
|
|
45
|
+
{ id: 6, name: 'archived' },
|
|
46
|
+
]);
|
|
47
|
+
console.log('✅ Master data seeded successfully');
|
|
48
|
+
}
|
|
49
|
+
export async function down(knex) {
|
|
50
|
+
// Clear all seeded data
|
|
51
|
+
await knex('m_task_statuses').del();
|
|
52
|
+
await knex('m_config').del();
|
|
53
|
+
await knex('m_tags').del();
|
|
54
|
+
await knex('m_constraint_categories').del();
|
|
55
|
+
await knex('m_layers').del();
|
|
56
|
+
console.log('✅ Master data cleared');
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=20251025021416_seed_master_data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021416_seed_master_data.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021416_seed_master_data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025070349_create_views.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025070349_create_views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Token-Efficient Views (v_ prefix)
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Tagged Decisions (Most Efficient View)
|
|
6
|
+
await knex.raw(`
|
|
7
|
+
CREATE VIEW IF NOT EXISTS v_tagged_decisions AS
|
|
8
|
+
SELECT
|
|
9
|
+
k.key,
|
|
10
|
+
d.value,
|
|
11
|
+
d.version,
|
|
12
|
+
CASE d.status WHEN 1 THEN 'active' WHEN 2 THEN 'deprecated' ELSE 'draft' END as status,
|
|
13
|
+
l.name as layer,
|
|
14
|
+
(SELECT GROUP_CONCAT(t2.name, ',') FROM t_decision_tags dt2
|
|
15
|
+
JOIN m_tags t2 ON dt2.tag_id = t2.id
|
|
16
|
+
WHERE dt2.decision_key_id = d.key_id) as tags,
|
|
17
|
+
(SELECT GROUP_CONCAT(s2.name, ',') FROM t_decision_scopes ds2
|
|
18
|
+
JOIN m_scopes s2 ON ds2.scope_id = s2.id
|
|
19
|
+
WHERE ds2.decision_key_id = d.key_id) as scopes,
|
|
20
|
+
a.name as decided_by,
|
|
21
|
+
datetime(d.ts, 'unixepoch') as updated
|
|
22
|
+
FROM t_decisions d
|
|
23
|
+
JOIN m_context_keys k ON d.key_id = k.id
|
|
24
|
+
LEFT JOIN m_layers l ON d.layer_id = l.id
|
|
25
|
+
LEFT JOIN m_agents a ON d.agent_id = a.id
|
|
26
|
+
`);
|
|
27
|
+
// Active Context (Last Hour, Active Only)
|
|
28
|
+
await knex.raw(`
|
|
29
|
+
CREATE VIEW IF NOT EXISTS v_active_context AS
|
|
30
|
+
SELECT
|
|
31
|
+
k.key,
|
|
32
|
+
d.value,
|
|
33
|
+
d.version,
|
|
34
|
+
l.name as layer,
|
|
35
|
+
a.name as decided_by,
|
|
36
|
+
datetime(d.ts, 'unixepoch') as updated
|
|
37
|
+
FROM t_decisions d
|
|
38
|
+
JOIN m_context_keys k ON d.key_id = k.id
|
|
39
|
+
LEFT JOIN m_layers l ON d.layer_id = l.id
|
|
40
|
+
LEFT JOIN m_agents a ON d.agent_id = a.id
|
|
41
|
+
WHERE d.status = 1 AND d.ts > unixepoch() - 3600
|
|
42
|
+
ORDER BY d.ts DESC
|
|
43
|
+
`);
|
|
44
|
+
// Layer Summary
|
|
45
|
+
await knex.raw(`
|
|
46
|
+
CREATE VIEW IF NOT EXISTS v_layer_summary AS
|
|
47
|
+
SELECT
|
|
48
|
+
l.name as layer,
|
|
49
|
+
COUNT(DISTINCT d.key_id) as decisions_count,
|
|
50
|
+
COUNT(DISTINCT fc.id) as file_changes_count,
|
|
51
|
+
COUNT(DISTINCT c.id) as constraints_count
|
|
52
|
+
FROM m_layers l
|
|
53
|
+
LEFT JOIN t_decisions d ON l.id = d.layer_id AND d.status = 1
|
|
54
|
+
LEFT JOIN t_file_changes fc ON l.id = fc.layer_id AND fc.ts > unixepoch() - 3600
|
|
55
|
+
LEFT JOIN t_constraints c ON l.id = c.layer_id AND c.active = 1
|
|
56
|
+
GROUP BY l.id
|
|
57
|
+
`);
|
|
58
|
+
// Unread Messages by Priority
|
|
59
|
+
await knex.raw(`
|
|
60
|
+
CREATE VIEW IF NOT EXISTS v_unread_messages_by_priority AS
|
|
61
|
+
SELECT
|
|
62
|
+
a.name as agent,
|
|
63
|
+
CASE m.priority WHEN 4 THEN 'critical' WHEN 3 THEN 'high' WHEN 2 THEN 'medium' ELSE 'low' END as priority,
|
|
64
|
+
COUNT(*) as count
|
|
65
|
+
FROM t_agent_messages m
|
|
66
|
+
JOIN m_agents a ON m.to_agent_id = a.id
|
|
67
|
+
WHERE m.read = 0
|
|
68
|
+
GROUP BY m.to_agent_id, m.priority
|
|
69
|
+
ORDER BY m.priority DESC
|
|
70
|
+
`);
|
|
71
|
+
// Recent File Changes (With Layer)
|
|
72
|
+
await knex.raw(`
|
|
73
|
+
CREATE VIEW IF NOT EXISTS v_recent_file_changes AS
|
|
74
|
+
SELECT
|
|
75
|
+
f.path,
|
|
76
|
+
a.name as changed_by,
|
|
77
|
+
l.name as layer,
|
|
78
|
+
CASE fc.change_type WHEN 1 THEN 'created' WHEN 2 THEN 'modified' ELSE 'deleted' END as change_type,
|
|
79
|
+
fc.description,
|
|
80
|
+
datetime(fc.ts, 'unixepoch') as changed_at
|
|
81
|
+
FROM t_file_changes fc
|
|
82
|
+
JOIN m_files f ON fc.file_id = f.id
|
|
83
|
+
JOIN m_agents a ON fc.agent_id = a.id
|
|
84
|
+
LEFT JOIN m_layers l ON fc.layer_id = l.id
|
|
85
|
+
WHERE fc.ts > unixepoch() - 3600
|
|
86
|
+
ORDER BY fc.ts DESC
|
|
87
|
+
`);
|
|
88
|
+
// Tagged Constraints
|
|
89
|
+
await knex.raw(`
|
|
90
|
+
CREATE VIEW IF NOT EXISTS v_tagged_constraints AS
|
|
91
|
+
SELECT
|
|
92
|
+
c.id,
|
|
93
|
+
cc.name as category,
|
|
94
|
+
l.name as layer,
|
|
95
|
+
c.constraint_text,
|
|
96
|
+
CASE c.priority WHEN 4 THEN 'critical' WHEN 3 THEN 'high' WHEN 2 THEN 'medium' ELSE 'low' END as priority,
|
|
97
|
+
(SELECT GROUP_CONCAT(t2.name, ',') FROM t_constraint_tags ct2
|
|
98
|
+
JOIN m_tags t2 ON ct2.tag_id = t2.id
|
|
99
|
+
WHERE ct2.constraint_id = c.id) as tags,
|
|
100
|
+
a.name as created_by,
|
|
101
|
+
datetime(c.ts, 'unixepoch') as created_at
|
|
102
|
+
FROM t_constraints c
|
|
103
|
+
JOIN m_constraint_categories cc ON c.category_id = cc.id
|
|
104
|
+
LEFT JOIN m_layers l ON c.layer_id = l.id
|
|
105
|
+
LEFT JOIN m_agents a ON c.agent_id = a.id
|
|
106
|
+
WHERE c.active = 1
|
|
107
|
+
ORDER BY c.priority DESC, cc.name, c.ts DESC
|
|
108
|
+
`);
|
|
109
|
+
// Task Board View (Token-efficient)
|
|
110
|
+
await knex.raw(`
|
|
111
|
+
CREATE VIEW IF NOT EXISTS v_task_board AS
|
|
112
|
+
SELECT
|
|
113
|
+
t.id,
|
|
114
|
+
t.title,
|
|
115
|
+
s.name as status,
|
|
116
|
+
t.priority,
|
|
117
|
+
a.name as assigned_to,
|
|
118
|
+
l.name as layer,
|
|
119
|
+
t.created_ts,
|
|
120
|
+
t.updated_ts,
|
|
121
|
+
t.completed_ts,
|
|
122
|
+
(SELECT GROUP_CONCAT(tg2.name, ', ')
|
|
123
|
+
FROM t_task_tags tt2
|
|
124
|
+
JOIN m_tags tg2 ON tt2.tag_id = tg2.id
|
|
125
|
+
WHERE tt2.task_id = t.id) as tags
|
|
126
|
+
FROM t_tasks t
|
|
127
|
+
LEFT JOIN m_task_statuses s ON t.status_id = s.id
|
|
128
|
+
LEFT JOIN m_agents a ON t.assigned_agent_id = a.id
|
|
129
|
+
LEFT JOIN m_layers l ON t.layer_id = l.id
|
|
130
|
+
`);
|
|
131
|
+
console.log('✅ Views created successfully');
|
|
132
|
+
}
|
|
133
|
+
export async function down(knex) {
|
|
134
|
+
await knex.raw('DROP VIEW IF EXISTS v_task_board');
|
|
135
|
+
await knex.raw('DROP VIEW IF EXISTS v_tagged_constraints');
|
|
136
|
+
await knex.raw('DROP VIEW IF EXISTS v_recent_file_changes');
|
|
137
|
+
await knex.raw('DROP VIEW IF EXISTS v_unread_messages_by_priority');
|
|
138
|
+
await knex.raw('DROP VIEW IF EXISTS v_layer_summary');
|
|
139
|
+
await knex.raw('DROP VIEW IF EXISTS v_active_context');
|
|
140
|
+
await knex.raw('DROP VIEW IF EXISTS v_tagged_decisions');
|
|
141
|
+
console.log('✅ Views dropped successfully');
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=20251025070349_create_views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025070349_create_views.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025070349_create_views.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,oCAAoC;IACpC,+EAA+E;IAE/E,yCAAyC;IACzC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;GAoBd,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;GAed,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;GAYd,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;GAWd,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;GAed,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAmBd,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;GAoBd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025081221_add_link_type_to_task_decision_links.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025081221_add_link_type_to_task_decision_links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// Add link_type column to t_task_decision_links table
|
|
3
|
+
await knex.schema.alterTable('t_task_decision_links', (table) => {
|
|
4
|
+
table.text('link_type').defaultTo('implements');
|
|
5
|
+
});
|
|
6
|
+
console.log('✅ Added link_type column to t_task_decision_links');
|
|
7
|
+
}
|
|
8
|
+
export async function down(knex) {
|
|
9
|
+
// Remove link_type column from t_task_decision_links table
|
|
10
|
+
await knex.schema.alterTable('t_task_decision_links', (table) => {
|
|
11
|
+
table.dropColumn('link_type');
|
|
12
|
+
});
|
|
13
|
+
console.log('✅ Removed link_type column from t_task_decision_links');
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=20251025081221_add_link_type_to_task_decision_links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025081221_add_link_type_to_task_decision_links.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025081221_add_link_type_to_task_decision_links.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,sDAAsD;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AACnE,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,2DAA2D;IAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9D,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Knex } from "knex";
|
|
2
|
+
/**
|
|
3
|
+
* Stub migration - this was created to resolve Knex corruption error
|
|
4
|
+
* The actual changes were likely applied manually or in a different migration
|
|
5
|
+
*/
|
|
6
|
+
export declare function up(knex: Knex): Promise<void>;
|
|
7
|
+
export declare function down(knex: Knex): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=20251025082220_fix_task_dependencies_columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025082220_fix_task_dependencies_columns.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025082220_fix_task_dependencies_columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC;;;GAGG;AAEH,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stub migration - this was created to resolve Knex corruption error
|
|
3
|
+
* The actual changes were likely applied manually or in a different migration
|
|
4
|
+
*/
|
|
5
|
+
export async function up(knex) {
|
|
6
|
+
// No-op: changes already applied
|
|
7
|
+
console.log('Stub migration: no changes needed');
|
|
8
|
+
}
|
|
9
|
+
export async function down(knex) {
|
|
10
|
+
// No-op
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=20251025082220_fix_task_dependencies_columns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025082220_fix_task_dependencies_columns.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025082220_fix_task_dependencies_columns.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,iCAAiC;IACjC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,QAAQ;AACV,CAAC"}
|