sqlew 3.5.3 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +247 -1772
- package/README.md +70 -304
- package/assets/config.example.toml +97 -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 +9 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database.d.ts +44 -122
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +145 -416
- package/dist/database.js.map +1 -1
- package/dist/index.js +215 -185
- 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/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/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 +66 -48
- 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 +374 -330
- 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 +217 -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 +513 -439
- 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 +86 -121
- package/dist/tools/utils.js.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 +21 -13
- package/dist/utils/cleanup.d.ts.map +1 -1
- package/dist/utils/cleanup.js +31 -24
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +44 -0
- package/dist/utils/debug-logger.d.ts.map +1 -0
- package/dist/utils/debug-logger.js +116 -0
- package/dist/utils/debug-logger.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/retention.d.ts +7 -7
- package/dist/utils/retention.d.ts.map +1 -1
- package/dist/utils/retention.js +12 -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 +16 -4
package/dist/tools/utils.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility tools for MCP Shared Context Server
|
|
3
3
|
* Database statistics, layer summaries, and manual cleanup
|
|
4
|
+
*
|
|
5
|
+
* CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
|
|
4
6
|
*/
|
|
5
|
-
import {
|
|
7
|
+
import { getAdapter } from '../database.js';
|
|
6
8
|
import { calculateMessageCutoff, calculateFileChangeCutoff } from '../utils/retention.js';
|
|
7
9
|
import { cleanupWithCustomRetention } from '../utils/cleanup.js';
|
|
8
10
|
/**
|
|
9
11
|
* Get summary statistics for all architecture layers
|
|
10
12
|
* Uses the v_layer_summary view for token efficiency
|
|
11
13
|
*
|
|
12
|
-
* @param
|
|
14
|
+
* @param adapter - Optional database adapter (for testing)
|
|
13
15
|
* @returns Layer summaries for all 5 standard layers
|
|
14
16
|
*/
|
|
15
|
-
export function getLayerSummary(
|
|
16
|
-
const
|
|
17
|
+
export async function getLayerSummary(adapter) {
|
|
18
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
19
|
+
const knex = actualAdapter.getKnex();
|
|
17
20
|
try {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
layer,
|
|
22
|
-
decisions_count,
|
|
23
|
-
file_changes_count,
|
|
24
|
-
constraints_count
|
|
25
|
-
FROM v_layer_summary
|
|
26
|
-
ORDER BY layer
|
|
27
|
-
`);
|
|
28
|
-
const summary = stmt.all();
|
|
21
|
+
const summary = await knex('v_layer_summary')
|
|
22
|
+
.select('layer', 'decisions_count', 'file_changes_count', 'constraints_count')
|
|
23
|
+
.orderBy('layer');
|
|
29
24
|
return {
|
|
30
25
|
summary,
|
|
31
26
|
};
|
|
@@ -44,44 +39,39 @@ export function getLayerSummary(db) {
|
|
|
44
39
|
* If parameters are provided, they override m_config settings (no weekend-awareness).
|
|
45
40
|
*
|
|
46
41
|
* @param params - Optional parameters for cleanup thresholds (overrides config)
|
|
47
|
-
* @param
|
|
42
|
+
* @param adapter - Optional database adapter (for testing)
|
|
48
43
|
* @returns Counts of deleted records
|
|
49
44
|
*/
|
|
50
|
-
export function clearOldData(params,
|
|
51
|
-
const
|
|
45
|
+
export async function clearOldData(params, adapter) {
|
|
46
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
52
47
|
try {
|
|
53
|
-
return transaction(
|
|
54
|
-
let messagesThreshold;
|
|
55
|
-
let fileChangesThreshold;
|
|
48
|
+
return await actualAdapter.transaction(async (trx) => {
|
|
56
49
|
let messagesDeleted = 0;
|
|
57
50
|
let fileChangesDeleted = 0;
|
|
58
51
|
let activityLogsDeleted = 0;
|
|
59
52
|
if (params?.messages_older_than_hours !== undefined || params?.file_changes_older_than_days !== undefined) {
|
|
60
53
|
// Parameters provided: use custom retention (no weekend-awareness)
|
|
61
|
-
const result = cleanupWithCustomRetention(
|
|
54
|
+
const result = await cleanupWithCustomRetention(actualAdapter, params.messages_older_than_hours, params.file_changes_older_than_days, trx);
|
|
62
55
|
messagesDeleted = result.messagesDeleted;
|
|
63
56
|
fileChangesDeleted = result.fileChangesDeleted;
|
|
64
57
|
activityLogsDeleted = result.activityLogsDeleted;
|
|
65
58
|
}
|
|
66
59
|
else {
|
|
67
60
|
// No parameters: use config-based weekend-aware retention
|
|
68
|
-
messagesThreshold = calculateMessageCutoff(
|
|
69
|
-
fileChangesThreshold = calculateFileChangeCutoff(
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const deleteActivityLogs = actualDb.prepare('DELETE FROM t_activity_log WHERE ts < ?');
|
|
83
|
-
deleteActivityLogs.run(messagesThreshold);
|
|
84
|
-
activityLogsDeleted = activityLogsCount.count;
|
|
61
|
+
const messagesThreshold = await calculateMessageCutoff(actualAdapter);
|
|
62
|
+
const fileChangesThreshold = await calculateFileChangeCutoff(actualAdapter);
|
|
63
|
+
// Delete messages
|
|
64
|
+
messagesDeleted = await trx('t_agent_messages')
|
|
65
|
+
.where('ts', '<', messagesThreshold)
|
|
66
|
+
.delete();
|
|
67
|
+
// Delete file changes
|
|
68
|
+
fileChangesDeleted = await trx('t_file_changes')
|
|
69
|
+
.where('ts', '<', fileChangesThreshold)
|
|
70
|
+
.delete();
|
|
71
|
+
// Delete activity logs (uses same threshold as messages per constraint #4)
|
|
72
|
+
activityLogsDeleted = await trx('t_activity_log')
|
|
73
|
+
.where('ts', '<', messagesThreshold)
|
|
74
|
+
.delete();
|
|
85
75
|
}
|
|
86
76
|
return {
|
|
87
77
|
success: true,
|
|
@@ -100,62 +90,64 @@ export function clearOldData(params, db) {
|
|
|
100
90
|
* Get comprehensive database statistics
|
|
101
91
|
* Returns counts for all major tables and database health metrics
|
|
102
92
|
*
|
|
103
|
-
* @param
|
|
93
|
+
* @param adapter - Optional database adapter (for testing)
|
|
104
94
|
* @returns Complete database statistics
|
|
105
95
|
*/
|
|
106
|
-
export function getStats(
|
|
107
|
-
const
|
|
96
|
+
export async function getStats(adapter) {
|
|
97
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
98
|
+
const knex = actualAdapter.getKnex();
|
|
108
99
|
try {
|
|
109
100
|
// Helper to get count from a table
|
|
110
|
-
const getCount = (table, where) => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
101
|
+
const getCount = async (table, where) => {
|
|
102
|
+
let query = knex(table).count('* as count');
|
|
103
|
+
if (where) {
|
|
104
|
+
query = query.whereRaw(where);
|
|
105
|
+
}
|
|
106
|
+
const result = await query.first();
|
|
115
107
|
return result.count;
|
|
116
108
|
};
|
|
117
|
-
// Get all statistics
|
|
118
|
-
const agents = getCount('m_agents');
|
|
119
|
-
const files = getCount('m_files');
|
|
120
|
-
const context_keys = getCount('m_context_keys');
|
|
109
|
+
// Get all statistics (note: all await calls!)
|
|
110
|
+
const agents = await getCount('m_agents');
|
|
111
|
+
const files = await getCount('m_files');
|
|
112
|
+
const context_keys = await getCount('m_context_keys');
|
|
121
113
|
// Decisions (active vs total)
|
|
122
|
-
const active_decisions = getCount('t_decisions', 'status = 1');
|
|
123
|
-
const total_decisions = getCount('t_decisions');
|
|
114
|
+
const active_decisions = await getCount('t_decisions', 'status = 1');
|
|
115
|
+
const total_decisions = await getCount('t_decisions');
|
|
124
116
|
// Messages
|
|
125
|
-
const messages = getCount('t_agent_messages');
|
|
117
|
+
const messages = await getCount('t_agent_messages');
|
|
126
118
|
// File changes
|
|
127
|
-
const file_changes = getCount('t_file_changes');
|
|
119
|
+
const file_changes = await getCount('t_file_changes');
|
|
128
120
|
// Constraints (active vs total)
|
|
129
|
-
const active_constraints = getCount('t_constraints', 'active = 1');
|
|
130
|
-
const total_constraints = getCount('t_constraints');
|
|
121
|
+
const active_constraints = await getCount('t_constraints', 'active = 1');
|
|
122
|
+
const total_constraints = await getCount('t_constraints');
|
|
131
123
|
// Metadata
|
|
132
|
-
const tags = getCount('m_tags');
|
|
133
|
-
const scopes = getCount('m_scopes');
|
|
134
|
-
const layers = getCount('m_layers');
|
|
124
|
+
const tags = await getCount('m_tags');
|
|
125
|
+
const scopes = await getCount('m_scopes');
|
|
126
|
+
const layers = await getCount('m_layers');
|
|
135
127
|
// Task statistics (v3.x)
|
|
136
|
-
const total_tasks = getCount('t_tasks');
|
|
137
|
-
const active_tasks = getCount('t_tasks', 'status_id NOT IN (5, 6)'); // Exclude done and archived
|
|
128
|
+
const total_tasks = await getCount('t_tasks');
|
|
129
|
+
const active_tasks = await getCount('t_tasks', 'status_id NOT IN (5, 6)'); // Exclude done and archived
|
|
138
130
|
// Tasks by status (1=todo, 2=in_progress, 3=waiting_review, 4=blocked, 5=done, 6=archived)
|
|
139
131
|
const tasks_by_status = {
|
|
140
|
-
todo: getCount('t_tasks', 'status_id = 1'),
|
|
141
|
-
in_progress: getCount('t_tasks', 'status_id = 2'),
|
|
142
|
-
waiting_review: getCount('t_tasks', 'status_id = 3'),
|
|
143
|
-
blocked: getCount('t_tasks', 'status_id = 4'),
|
|
144
|
-
done: getCount('t_tasks', 'status_id = 5'),
|
|
145
|
-
archived: getCount('t_tasks', 'status_id = 6'),
|
|
132
|
+
todo: await getCount('t_tasks', 'status_id = 1'),
|
|
133
|
+
in_progress: await getCount('t_tasks', 'status_id = 2'),
|
|
134
|
+
waiting_review: await getCount('t_tasks', 'status_id = 3'),
|
|
135
|
+
blocked: await getCount('t_tasks', 'status_id = 4'),
|
|
136
|
+
done: await getCount('t_tasks', 'status_id = 5'),
|
|
137
|
+
archived: await getCount('t_tasks', 'status_id = 6'),
|
|
146
138
|
};
|
|
147
139
|
// Tasks by priority (1=low, 2=medium, 3=high, 4=critical)
|
|
148
140
|
const tasks_by_priority = {
|
|
149
|
-
low: getCount('t_tasks', 'priority = 1'),
|
|
150
|
-
medium: getCount('t_tasks', 'priority = 2'),
|
|
151
|
-
high: getCount('t_tasks', 'priority = 3'),
|
|
152
|
-
critical: getCount('t_tasks', 'priority = 4'),
|
|
141
|
+
low: await getCount('t_tasks', 'priority = 1'),
|
|
142
|
+
medium: await getCount('t_tasks', 'priority = 2'),
|
|
143
|
+
high: await getCount('t_tasks', 'priority = 3'),
|
|
144
|
+
critical: await getCount('t_tasks', 'priority = 4'),
|
|
153
145
|
};
|
|
154
146
|
// Review status (v3.4.0) - tasks in waiting_review awaiting git commits
|
|
155
147
|
const review_status = {
|
|
156
148
|
awaiting_commit: tasks_by_status.waiting_review,
|
|
157
149
|
// Tasks in waiting_review for >24h (may need attention)
|
|
158
|
-
overdue_review: getCount('t_tasks', `status_id = 3 AND updated_ts < unixepoch() - 86400`),
|
|
150
|
+
overdue_review: await getCount('t_tasks', `status_id = 3 AND updated_ts < unixepoch() - 86400`),
|
|
159
151
|
};
|
|
160
152
|
return {
|
|
161
153
|
agents,
|
|
@@ -187,18 +179,17 @@ export function getStats(db) {
|
|
|
187
179
|
* Supports time-based filtering (relative or absolute) and agent/action filtering
|
|
188
180
|
*
|
|
189
181
|
* @param params - Filter parameters (since, agent_names, actions, limit)
|
|
190
|
-
* @param
|
|
182
|
+
* @param adapter - Optional database adapter (for testing)
|
|
191
183
|
* @returns Activity log entries with parsed details
|
|
192
184
|
*/
|
|
193
|
-
export function getActivityLog(params,
|
|
194
|
-
const
|
|
185
|
+
export async function getActivityLog(params, adapter) {
|
|
186
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
187
|
+
const knex = actualAdapter.getKnex();
|
|
195
188
|
try {
|
|
196
|
-
// Parse 'since' parameter to get timestamp
|
|
197
189
|
let sinceTimestamp = null;
|
|
198
190
|
if (params?.since) {
|
|
199
191
|
const since = params.since;
|
|
200
192
|
const now = Math.floor(Date.now() / 1000);
|
|
201
|
-
// Check for relative time format (e.g., "5m", "1h", "2d")
|
|
202
193
|
const relativeMatch = since.match(/^(\d+)([mhd])$/);
|
|
203
194
|
if (relativeMatch) {
|
|
204
195
|
const value = parseInt(relativeMatch[1], 10);
|
|
@@ -218,7 +209,6 @@ export function getActivityLog(params, db) {
|
|
|
218
209
|
sinceTimestamp = now - seconds;
|
|
219
210
|
}
|
|
220
211
|
else {
|
|
221
|
-
// Try to parse as ISO 8601 timestamp
|
|
222
212
|
try {
|
|
223
213
|
const date = new Date(since);
|
|
224
214
|
sinceTimestamp = Math.floor(date.getTime() / 1000);
|
|
@@ -228,49 +218,22 @@ export function getActivityLog(params, db) {
|
|
|
228
218
|
}
|
|
229
219
|
}
|
|
230
220
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
al.ts,
|
|
236
|
-
a.name as agent,
|
|
237
|
-
al.action_type,
|
|
238
|
-
al.target,
|
|
239
|
-
l.name as layer,
|
|
240
|
-
al.details
|
|
241
|
-
FROM t_activity_log al
|
|
242
|
-
JOIN m_agents a ON al.agent_id = a.id
|
|
243
|
-
LEFT JOIN m_layers l ON al.layer_id = l.id
|
|
244
|
-
WHERE 1=1
|
|
245
|
-
`;
|
|
246
|
-
const queryParams = [];
|
|
247
|
-
// Filter by timestamp
|
|
221
|
+
let query = knex('t_activity_log as al')
|
|
222
|
+
.join('m_agents as a', 'al.agent_id', 'a.id')
|
|
223
|
+
.leftJoin('m_layers as l', 'al.layer_id', 'l.id')
|
|
224
|
+
.select('al.id', 'al.ts', 'a.name as agent', 'al.action_type', 'al.target', 'l.name as layer', 'al.details');
|
|
248
225
|
if (sinceTimestamp !== null) {
|
|
249
|
-
query
|
|
250
|
-
queryParams.push(sinceTimestamp);
|
|
226
|
+
query = query.where('al.ts', '>=', sinceTimestamp);
|
|
251
227
|
}
|
|
252
|
-
// Filter by agent names
|
|
253
228
|
if (params?.agent_names && params.agent_names.length > 0 && !params.agent_names.includes('*')) {
|
|
254
|
-
|
|
255
|
-
query += ` AND a.name IN (${placeholders})`;
|
|
256
|
-
queryParams.push(...params.agent_names);
|
|
229
|
+
query = query.whereIn('a.name', params.agent_names);
|
|
257
230
|
}
|
|
258
|
-
// Filter by action types
|
|
259
231
|
if (params?.actions && params.actions.length > 0) {
|
|
260
|
-
|
|
261
|
-
query += ` AND al.action_type IN (${placeholders})`;
|
|
262
|
-
queryParams.push(...params.actions);
|
|
232
|
+
query = query.whereIn('al.action_type', params.actions);
|
|
263
233
|
}
|
|
264
|
-
// Order by timestamp descending (most recent first)
|
|
265
|
-
query += ' ORDER BY al.ts DESC';
|
|
266
|
-
// Apply limit
|
|
267
234
|
const limit = params?.limit ?? 100;
|
|
268
|
-
query
|
|
269
|
-
|
|
270
|
-
// Execute query
|
|
271
|
-
const stmt = actualDb.prepare(query);
|
|
272
|
-
const rows = stmt.all(...queryParams);
|
|
273
|
-
// Transform results
|
|
235
|
+
query = query.orderBy('al.ts', 'desc').limit(limit);
|
|
236
|
+
const rows = await query;
|
|
274
237
|
const activities = rows.map(row => ({
|
|
275
238
|
id: row.id,
|
|
276
239
|
timestamp: new Date(row.ts * 1000).toISOString(),
|
|
@@ -294,20 +257,22 @@ export function getActivityLog(params, db) {
|
|
|
294
257
|
* Force WAL checkpoint to flush pending transactions to main database file
|
|
295
258
|
* Uses TRUNCATE mode for complete flush - useful before git commits
|
|
296
259
|
*
|
|
297
|
-
* @param
|
|
260
|
+
* @param adapter - Optional database adapter (for testing)
|
|
298
261
|
* @returns Checkpoint result with pages flushed
|
|
299
262
|
*/
|
|
300
|
-
export function flushWAL(
|
|
301
|
-
const
|
|
263
|
+
export async function flushWAL(adapter) {
|
|
264
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
265
|
+
const knex = actualAdapter.getKnex();
|
|
302
266
|
try {
|
|
303
267
|
// Execute TRUNCATE checkpoint - most aggressive mode
|
|
304
268
|
// Blocks until complete, ensures all WAL data written to main DB file
|
|
305
|
-
// Returns array: [busy, log, checkpointed]
|
|
269
|
+
// Returns array: [[busy, log, checkpointed]]
|
|
306
270
|
// - busy: number of frames not checkpointed due to locks
|
|
307
271
|
// - log: total number of frames in WAL file
|
|
308
272
|
// - checkpointed: number of frames checkpointed
|
|
309
|
-
const result =
|
|
310
|
-
|
|
273
|
+
const result = await knex.raw('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
274
|
+
// Parse result array format from Knex
|
|
275
|
+
const pagesFlushed = result?.[0]?.[0]?.[2] || 0;
|
|
311
276
|
return {
|
|
312
277
|
success: true,
|
|
313
278
|
mode: 'TRUNCATE',
|
package/dist/tools/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAa1D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAAa;IAC3C,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,gDAAgD;QAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;;;;;;;;KAQ7B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAoB,CAAC;QAE7C,OAAO;YACL,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,MAA2B,EAAE,EAAa;IACrE,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;YAChC,IAAI,iBAAyB,CAAC;YAC9B,IAAI,oBAA4B,CAAC;YACjC,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAE5B,IAAI,MAAM,EAAE,yBAAyB,KAAK,SAAS,IAAI,MAAM,EAAE,4BAA4B,KAAK,SAAS,EAAE,CAAC;gBAC1G,mEAAmE;gBACnE,MAAM,MAAM,GAAG,0BAA0B,CACvC,QAAQ,EACR,MAAM,CAAC,yBAAyB,EAChC,MAAM,CAAC,4BAA4B,CACpC,CAAC;gBACF,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;gBACzC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;gBAC/C,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,0DAA0D;gBAC1D,iBAAiB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBACrD,oBAAoB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;gBAE3D,4BAA4B;gBAC5B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CACpC,6DAA6D,CAC9D,CAAC,GAAG,CAAC,iBAAiB,CAAsB,CAAC;gBAE9C,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CACrC,2CAA2C,CAC5C,CAAC;gBACF,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACtC,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC;gBAEtC,gCAAgC;gBAChC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CACvC,2DAA2D,CAC5D,CAAC,GAAG,CAAC,oBAAoB,CAAsB,CAAC;gBAEjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CACxC,yCAAyC,CAC1C,CAAC;gBACF,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAC5C,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBAE5C,qFAAqF;gBACrF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CACxC,2DAA2D,CAC5D,CAAC,GAAG,CAAC,iBAAiB,CAAsB,CAAC;gBAE9C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CACzC,yCAAyC,CAC1C,CAAC;gBACF,kBAAkB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC1C,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAChD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,eAAe;gBACjC,oBAAoB,EAAE,kBAAkB;gBACxC,qBAAqB,EAAE,mBAAmB;aAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAa;IACpC,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,mCAAmC;QACnC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,KAAc,EAAU,EAAE;YACzD,MAAM,KAAK,GAAG,KAAK;gBACjB,CAAC,CAAC,iCAAiC,KAAK,UAAU,KAAK,EAAE;gBACzD,CAAC,CAAC,iCAAiC,KAAK,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAuB,CAAC;YAClE,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC;QAEF,qBAAqB;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEhD,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEhD,WAAW;QACX,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAE9C,eAAe;QACf,MAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEhD,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;QAEpD,WAAW;QACX,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEpC,yBAAyB;QACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC,4BAA4B;QAEjG,2FAA2F;QAC3F,MAAM,eAAe,GAAG;YACtB,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;YAC1C,WAAW,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;YACjD,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;YACpD,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;YAC1C,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;SAC/C,CAAC;QAEF,0DAA0D;QAC1D,MAAM,iBAAiB,GAAG;YACxB,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;YACxC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;YAC3C,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;YACzC,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SAC9C,CAAC;QAEF,wEAAwE;QACxE,MAAM,aAAa,GAAG;YACpB,eAAe,EAAE,eAAe,CAAC,cAAc;YAC/C,wDAAwD;YACxD,cAAc,EAAE,QAAQ,CAAC,SAAS,EAAE,oDAAoD,CAAC;SAC1F,CAAC;QAEF,OAAO;YACL,MAAM;YACN,KAAK;YACL,YAAY;YACZ,gBAAgB;YAChB,eAAe;YACf,QAAQ;YACR,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,IAAI;YACJ,MAAM;YACN,MAAM;YACN,WAAW;YACX,YAAY;YACZ,eAAe;YACf,iBAAiB;YACjB,aAAa,EAAE,qCAAqC;SACrD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAA6B,EAAE,EAAa;IACzE,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,2CAA2C;QAC3C,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAE1C,0DAA0D;YAC1D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACpD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAE9B,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,GAAG;wBAAE,OAAO,GAAG,KAAK,GAAG,EAAE,CAAC;wBAAC,MAAM;oBACtC,KAAK,GAAG;wBAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;wBAAC,MAAM;oBACxC,KAAK,GAAG;wBAAE,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;wBAAC,MAAM;gBAC3C,CAAC;gBAED,cAAc,GAAG,GAAG,GAAG,OAAO,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,0DAA0D,CAAC,CAAC;gBACjH,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc;QACd,IAAI,KAAK,GAAG;;;;;;;;;;;;;KAaX,CAAC;QAEF,MAAM,WAAW,GAAU,EAAE,CAAC;QAE9B,sBAAsB;QACtB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,KAAK,IAAI,iBAAiB,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,KAAK,IAAI,mBAAmB,YAAY,GAAG,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,KAAK,IAAI,2BAA2B,YAAY,GAAG,CAAC;YACpD,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,oDAAoD;QACpD,KAAK,IAAI,sBAAsB,CAAC;QAEhC,cAAc;QACd,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;QACnC,KAAK,IAAI,UAAU,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,gBAAgB;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAQlC,CAAC;QAEH,oBAAoB;QACpB,MAAM,UAAU,GAAuB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAChD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,WAAW;YACvB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;SACtD,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,UAAU;YACV,KAAK,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAa;IACpC,MAAM,QAAQ,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,qDAAqD;QACrD,sEAAsE;QACtE,2CAA2C;QAC3C,yDAAyD;QACzD,4CAA4C;QAC5C,gDAAgD;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAyB,CAAC;QAErG,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEtC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,UAAU;YAChB,aAAa,EAAE,YAAY;YAC3B,OAAO,EAAE,0CAA0C,YAAY,uCAAuC;SACvG,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,mFAAmF;QAChG,IAAI,EAAE,mHAAmH;QACzH,OAAO,EAAE;YACP,aAAa,EAAE,0CAA0C;YACzD,QAAQ,EAAE,6CAA6C;YACvD,KAAK,EAAE,iFAAiF;YACxF,YAAY,EAAE,yJAAyJ;YACvK,KAAK,EAAE,uMAAuM;SAC/M;QACD,QAAQ,EAAE;YACR,aAAa,EAAE,6BAA6B;YAC5C,QAAQ,EAAE,wBAAwB;YAClC,KAAK,EAAE,sFAAsF;YAC7F,YAAY,EAAE,mFAAmF;YACjG,KAAK,EAAE,qBAAqB;SAC7B;QACD,aAAa,EAAE;YACb,SAAS,EAAE,+FAA+F;YAC1G,cAAc,EAAE,uFAAuF;YACvG,eAAe,EAAE,wFAAwF;YACzG,YAAY,EAAE,kEAAkE;SACjF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE;YACT,cAAc,EAAE;gBACd,KAAK,EAAE,4BAA4B;gBACnC,OAAO,EAAE;oBACP,OAAO,EAAE,6BAA6B;oBACtC,kBAAkB,EAAE,+FAA+F;oBACnH,QAAQ,EAAE,0DAA0D;iBACrE;aACF;YACD,eAAe,EAAE;gBACf,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE;oBACP,OAAO,EAAE,wBAAwB;oBACjC,kBAAkB,EAAE,+EAA+E;oBACnG,QAAQ,EAAE,yCAAyC;iBACpD;aACF;YACD,mBAAmB,EAAE;gBACnB,KAAK,EAAE,sBAAsB;gBAC7B,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,6BAA6B;wBACvC,OAAO,EAAE,oDAAoD;wBAC7D,WAAW,EAAE,0CAA0C;qBACxD;oBACD;wBACE,QAAQ,EAAE,yBAAyB;wBACnC,OAAO,EAAE,4FAA4F;wBACrG,WAAW,EAAE,4CAA4C;qBAC1D;oBACD;wBACE,QAAQ,EAAE,uBAAuB;wBACjC,OAAO,EAAE,mFAAmF;wBAC5F,WAAW,EAAE,oCAAoC;qBAClD;iBACF;aACF;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,yBAAyB;gBAChC,QAAQ,EAAE;oBACR;wBACE,QAAQ,EAAE,wCAAwC;wBAClD,OAAO,EAAE,sFAAsF;wBAC/F,WAAW,EAAE,qCAAqC;qBACnD;oBACD;wBACE,QAAQ,EAAE,gCAAgC;wBAC1C,OAAO,EAAE,qBAAqB;wBAC9B,WAAW,EAAE,iEAAiE;qBAC/E;iBACF;aACF;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,+BAA+B;gBACtC,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,kDAAkD;wBAC1D,WAAW,EAAE,gDAAgD;qBAC9D;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,8BAA8B;wBACtC,OAAO,EAAE,qBAAqB;wBAC9B,WAAW,EAAE,uCAAuC;qBACrD;oBACD;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,sBAAsB;wBAC9B,WAAW,EAAE,4DAA4D;qBAC1E;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,UAAU,EAAE;gBACV,oDAAoD;gBACpD,4CAA4C;gBAC5C,mDAAmD;gBACnD,0DAA0D;aAC3D;YACD,OAAO,EAAE;gBACP,8CAA8C;gBAC9C,oDAAoD;gBACpD,mDAAmD;gBACnD,uDAAuD;aACxD;YACD,eAAe,EAAE;gBACf,iDAAiD;gBACjD,iDAAiD;gBACjD,8CAA8C;gBAC9C,4CAA4C;aAC7C;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
/**
|
|
3
|
+
* Activity log helper functions
|
|
4
|
+
* Replaces database triggers for cross-DB compatibility
|
|
5
|
+
*/
|
|
6
|
+
interface ActivityLogEntry {
|
|
7
|
+
agent_id: number;
|
|
8
|
+
action_type: string;
|
|
9
|
+
target: string;
|
|
10
|
+
layer_id?: number;
|
|
11
|
+
details?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Insert activity log entry
|
|
15
|
+
*/
|
|
16
|
+
export declare function logActivity(knex: Knex | Knex.Transaction, entry: ActivityLogEntry): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Log decision set (replaces trg_log_decision_set)
|
|
19
|
+
*/
|
|
20
|
+
export declare function logDecisionSet(knex: Knex | Knex.Transaction, params: {
|
|
21
|
+
key: string;
|
|
22
|
+
value: string;
|
|
23
|
+
version: string;
|
|
24
|
+
status: number;
|
|
25
|
+
agent_id: number;
|
|
26
|
+
layer_id?: number;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Log decision update (replaces trg_log_decision_update)
|
|
30
|
+
*/
|
|
31
|
+
export declare function logDecisionUpdate(knex: Knex | Knex.Transaction, params: {
|
|
32
|
+
key: string;
|
|
33
|
+
old_value: string;
|
|
34
|
+
new_value: string;
|
|
35
|
+
old_version: string;
|
|
36
|
+
new_version: string;
|
|
37
|
+
agent_id: number;
|
|
38
|
+
layer_id?: number;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Record decision history (replaces trg_record_decision_history)
|
|
42
|
+
*/
|
|
43
|
+
export declare function recordDecisionHistory(knex: Knex | Knex.Transaction, params: {
|
|
44
|
+
key_id: number;
|
|
45
|
+
version: string;
|
|
46
|
+
value: string;
|
|
47
|
+
agent_id: number;
|
|
48
|
+
ts: number;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Log message send (replaces trg_log_message_send)
|
|
52
|
+
*/
|
|
53
|
+
export declare function logMessageSend(knex: Knex | Knex.Transaction, params: {
|
|
54
|
+
from_agent_id: number;
|
|
55
|
+
to_agent_id: number;
|
|
56
|
+
msg_type: number;
|
|
57
|
+
priority: number;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Log file record (replaces trg_log_file_record)
|
|
61
|
+
*/
|
|
62
|
+
export declare function logFileRecord(knex: Knex | Knex.Transaction, params: {
|
|
63
|
+
file_path: string;
|
|
64
|
+
change_type: number;
|
|
65
|
+
agent_id: number;
|
|
66
|
+
layer_id?: number;
|
|
67
|
+
}): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Log task create (replaces trg_log_task_create)
|
|
70
|
+
*/
|
|
71
|
+
export declare function logTaskCreate(knex: Knex | Knex.Transaction, params: {
|
|
72
|
+
task_id: number;
|
|
73
|
+
title: string;
|
|
74
|
+
agent_id: number;
|
|
75
|
+
layer_id?: number;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Log task status change (replaces trg_log_task_status_change)
|
|
79
|
+
*/
|
|
80
|
+
export declare function logTaskStatusChange(knex: Knex | Knex.Transaction, params: {
|
|
81
|
+
task_id: number;
|
|
82
|
+
old_status: number;
|
|
83
|
+
new_status: number;
|
|
84
|
+
agent_id: number;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Update task timestamp (replaces trg_update_task_timestamp)
|
|
88
|
+
* This is now handled in application layer when updating tasks
|
|
89
|
+
*/
|
|
90
|
+
export declare function updateTaskTimestamp(data: any): any;
|
|
91
|
+
/**
|
|
92
|
+
* Log constraint add (replaces trg_log_constraint_add)
|
|
93
|
+
*/
|
|
94
|
+
export declare function logConstraintAdd(knex: Knex | Knex.Transaction, params: {
|
|
95
|
+
constraint_id: number;
|
|
96
|
+
category: string;
|
|
97
|
+
constraint_text: string;
|
|
98
|
+
priority: string;
|
|
99
|
+
layer: string | null;
|
|
100
|
+
created_by: string;
|
|
101
|
+
agent_id: number;
|
|
102
|
+
}): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Log file change (replaces trg_log_file_change)
|
|
105
|
+
*/
|
|
106
|
+
export declare function logFileChange(knex: Knex | Knex.Transaction, params: {
|
|
107
|
+
file_path: string;
|
|
108
|
+
agent_name: string;
|
|
109
|
+
change_type: string;
|
|
110
|
+
layer: string | null;
|
|
111
|
+
description: string | null;
|
|
112
|
+
}): Promise<void>;
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=activity-logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-logging.d.ts","sourceRoot":"","sources":["../../src/utils/activity-logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Insert activity log entry
|
|
3
|
+
*/
|
|
4
|
+
export async function logActivity(knex, entry) {
|
|
5
|
+
await knex('t_activity_log').insert({
|
|
6
|
+
agent_id: entry.agent_id,
|
|
7
|
+
action_type: entry.action_type,
|
|
8
|
+
target: entry.target,
|
|
9
|
+
layer_id: entry.layer_id,
|
|
10
|
+
details: entry.details ? JSON.stringify(entry.details) : null,
|
|
11
|
+
ts: Math.floor(Date.now() / 1000), // Current Unix epoch
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Log decision set (replaces trg_log_decision_set)
|
|
16
|
+
*/
|
|
17
|
+
export async function logDecisionSet(knex, params) {
|
|
18
|
+
await logActivity(knex, {
|
|
19
|
+
agent_id: params.agent_id,
|
|
20
|
+
action_type: 'decision_set',
|
|
21
|
+
target: params.key,
|
|
22
|
+
layer_id: params.layer_id,
|
|
23
|
+
details: {
|
|
24
|
+
value: params.value,
|
|
25
|
+
version: params.version,
|
|
26
|
+
status: params.status,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Log decision update (replaces trg_log_decision_update)
|
|
32
|
+
*/
|
|
33
|
+
export async function logDecisionUpdate(knex, params) {
|
|
34
|
+
await logActivity(knex, {
|
|
35
|
+
agent_id: params.agent_id,
|
|
36
|
+
action_type: 'decision_update',
|
|
37
|
+
target: params.key,
|
|
38
|
+
layer_id: params.layer_id,
|
|
39
|
+
details: {
|
|
40
|
+
old_value: params.old_value,
|
|
41
|
+
new_value: params.new_value,
|
|
42
|
+
old_version: params.old_version,
|
|
43
|
+
new_version: params.new_version,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Record decision history (replaces trg_record_decision_history)
|
|
49
|
+
*/
|
|
50
|
+
export async function recordDecisionHistory(knex, params) {
|
|
51
|
+
await knex('t_decision_history').insert({
|
|
52
|
+
key_id: params.key_id,
|
|
53
|
+
version: params.version,
|
|
54
|
+
value: params.value,
|
|
55
|
+
agent_id: params.agent_id,
|
|
56
|
+
ts: params.ts,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Log message send (replaces trg_log_message_send)
|
|
61
|
+
*/
|
|
62
|
+
export async function logMessageSend(knex, params) {
|
|
63
|
+
// Get agent name for target
|
|
64
|
+
const fromAgent = await knex('m_agents').where({ id: params.from_agent_id }).first();
|
|
65
|
+
await logActivity(knex, {
|
|
66
|
+
agent_id: params.from_agent_id,
|
|
67
|
+
action_type: 'message_send',
|
|
68
|
+
target: fromAgent?.name || `agent_${params.to_agent_id}`,
|
|
69
|
+
details: {
|
|
70
|
+
msg_type: params.msg_type,
|
|
71
|
+
priority: params.priority,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Log file record (replaces trg_log_file_record)
|
|
77
|
+
*/
|
|
78
|
+
export async function logFileRecord(knex, params) {
|
|
79
|
+
await logActivity(knex, {
|
|
80
|
+
agent_id: params.agent_id,
|
|
81
|
+
action_type: 'file_record',
|
|
82
|
+
target: params.file_path,
|
|
83
|
+
layer_id: params.layer_id,
|
|
84
|
+
details: {
|
|
85
|
+
change_type: params.change_type,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Log task create (replaces trg_log_task_create)
|
|
91
|
+
*/
|
|
92
|
+
export async function logTaskCreate(knex, params) {
|
|
93
|
+
await logActivity(knex, {
|
|
94
|
+
agent_id: params.agent_id,
|
|
95
|
+
action_type: 'task_create',
|
|
96
|
+
target: `task_${params.task_id}`,
|
|
97
|
+
layer_id: params.layer_id,
|
|
98
|
+
details: {
|
|
99
|
+
title: params.title,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Log task status change (replaces trg_log_task_status_change)
|
|
105
|
+
*/
|
|
106
|
+
export async function logTaskStatusChange(knex, params) {
|
|
107
|
+
await logActivity(knex, {
|
|
108
|
+
agent_id: params.agent_id,
|
|
109
|
+
action_type: 'task_status_change',
|
|
110
|
+
target: `task_${params.task_id}`,
|
|
111
|
+
details: {
|
|
112
|
+
old_status: params.old_status,
|
|
113
|
+
new_status: params.new_status,
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Update task timestamp (replaces trg_update_task_timestamp)
|
|
119
|
+
* This is now handled in application layer when updating tasks
|
|
120
|
+
*/
|
|
121
|
+
export function updateTaskTimestamp(data) {
|
|
122
|
+
return {
|
|
123
|
+
...data,
|
|
124
|
+
updated_ts: Math.floor(Date.now() / 1000), // Current Unix epoch
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Log constraint add (replaces trg_log_constraint_add)
|
|
129
|
+
*/
|
|
130
|
+
export async function logConstraintAdd(knex, params) {
|
|
131
|
+
await logActivity(knex, {
|
|
132
|
+
agent_id: params.agent_id,
|
|
133
|
+
action_type: 'constraint_add',
|
|
134
|
+
target: `constraint_${params.constraint_id}`,
|
|
135
|
+
details: {
|
|
136
|
+
category: params.category,
|
|
137
|
+
constraint_text: params.constraint_text,
|
|
138
|
+
priority: params.priority,
|
|
139
|
+
layer: params.layer,
|
|
140
|
+
created_by: params.created_by,
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Log file change (replaces trg_log_file_change)
|
|
146
|
+
*/
|
|
147
|
+
export async function logFileChange(knex, params) {
|
|
148
|
+
// Get agent_id from agent_name
|
|
149
|
+
const agent = await knex('m_agents').where({ name: params.agent_name }).first();
|
|
150
|
+
if (agent) {
|
|
151
|
+
await logActivity(knex, {
|
|
152
|
+
agent_id: agent.id,
|
|
153
|
+
action_type: 'file_change',
|
|
154
|
+
target: params.file_path,
|
|
155
|
+
details: {
|
|
156
|
+
change_type: params.change_type,
|
|
157
|
+
description: params.description,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=activity-logging.js.map
|