clawck 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +322 -0
  3. package/dist/cli/index.d.ts +14 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +233 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/core/clawck.d.ts +48 -0
  8. package/dist/core/clawck.d.ts.map +1 -0
  9. package/dist/core/clawck.js +119 -0
  10. package/dist/core/clawck.js.map +1 -0
  11. package/dist/core/database.d.ts +55 -0
  12. package/dist/core/database.d.ts.map +1 -0
  13. package/dist/core/database.js +329 -0
  14. package/dist/core/database.js.map +1 -0
  15. package/dist/core/index.d.ts +4 -0
  16. package/dist/core/index.d.ts.map +1 -0
  17. package/dist/core/index.js +23 -0
  18. package/dist/core/index.js.map +1 -0
  19. package/dist/core/sync.d.ts +17 -0
  20. package/dist/core/sync.d.ts.map +1 -0
  21. package/dist/core/sync.js +91 -0
  22. package/dist/core/sync.js.map +1 -0
  23. package/dist/core/types.d.ts +186 -0
  24. package/dist/core/types.d.ts.map +1 -0
  25. package/dist/core/types.js +34 -0
  26. package/dist/core/types.js.map +1 -0
  27. package/dist/dashboard/index.d.ts +6 -0
  28. package/dist/dashboard/index.d.ts.map +1 -0
  29. package/dist/dashboard/index.js +632 -0
  30. package/dist/dashboard/index.js.map +1 -0
  31. package/dist/index.d.ts +30 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +53 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/server/api.d.ts +15 -0
  36. package/dist/server/api.d.ts.map +1 -0
  37. package/dist/server/api.js +193 -0
  38. package/dist/server/api.js.map +1 -0
  39. package/dist/server/index.d.ts +3 -0
  40. package/dist/server/index.d.ts.map +1 -0
  41. package/dist/server/index.js +9 -0
  42. package/dist/server/index.js.map +1 -0
  43. package/dist/server/mcp.d.ts +8 -0
  44. package/dist/server/mcp.d.ts.map +1 -0
  45. package/dist/server/mcp.js +277 -0
  46. package/dist/server/mcp.js.map +1 -0
  47. package/package.json +66 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /**
3
+ * Clawck SyncManager — pulls entries from remote Clawck instances
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SyncManager = void 0;
7
+ class SyncManager {
8
+ config;
9
+ db;
10
+ interval = null;
11
+ constructor(config, db) {
12
+ this.config = config;
13
+ this.db = db;
14
+ }
15
+ start() {
16
+ if (this.interval)
17
+ return;
18
+ const ms = (this.config.sync_interval || 60) * 1000;
19
+ this.syncAll();
20
+ this.interval = setInterval(() => this.syncAll(), ms);
21
+ }
22
+ stop() {
23
+ if (this.interval) {
24
+ clearInterval(this.interval);
25
+ this.interval = null;
26
+ }
27
+ }
28
+ async syncAll() {
29
+ const sources = this.config.remote_sources || [];
30
+ const results = [];
31
+ for (const source of sources) {
32
+ try {
33
+ const state = await this.syncOne(source);
34
+ results.push(state);
35
+ }
36
+ catch {
37
+ // Individual source errors are caught in syncOne
38
+ }
39
+ }
40
+ return results;
41
+ }
42
+ async syncOne(source) {
43
+ const existing = this.db.getSyncState(source.name);
44
+ let fromDate;
45
+ if (existing?.last_sync_at) {
46
+ // Overlap by 60s to catch stragglers
47
+ const d = new Date(new Date(existing.last_sync_at).getTime() - 60000);
48
+ fromDate = d.toISOString();
49
+ }
50
+ else {
51
+ fromDate = new Date(0).toISOString();
52
+ }
53
+ try {
54
+ const url = `${source.url.replace(/\/$/, '')}/api/entries?from=${encodeURIComponent(fromDate)}&limit=1000`;
55
+ const headers = { 'Accept': 'application/json' };
56
+ if (source.api_key) {
57
+ headers['Authorization'] = `Bearer ${source.api_key}`;
58
+ }
59
+ const response = await fetch(url, { headers });
60
+ if (!response.ok) {
61
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
62
+ }
63
+ const entries = await response.json();
64
+ const count = this.db.bulkUpsert(entries);
65
+ const state = {
66
+ source_name: source.name,
67
+ last_sync_at: new Date().toISOString(),
68
+ last_status: 'success',
69
+ entries_synced: count,
70
+ };
71
+ this.db.setSyncState(state);
72
+ return state;
73
+ }
74
+ catch (err) {
75
+ const state = {
76
+ source_name: source.name,
77
+ last_sync_at: new Date().toISOString(),
78
+ last_status: 'error',
79
+ last_error: err.message || String(err),
80
+ entries_synced: 0,
81
+ };
82
+ this.db.setSyncState(state);
83
+ return state;
84
+ }
85
+ }
86
+ getStates() {
87
+ return this.db.getAllSyncStates();
88
+ }
89
+ }
90
+ exports.SyncManager = SyncManager;
91
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * ⏱️🦀 Clawck — Core Types & Schema
3
+ * The data model for AI agent time tracking.
4
+ *
5
+ * ClawckSpec v0.1 — an open standard for agent work entries.
6
+ */
7
+ export type EntryStatus = 'running' | 'completed' | 'failed' | 'paused';
8
+ export type TaskCategory = 'research' | 'content' | 'code' | 'data_entry' | 'design' | 'communication' | 'analysis' | 'testing' | 'planning' | 'other';
9
+ export interface ClawckEntry {
10
+ /** Globally unique entry ID (UUID v4) */
11
+ id: string;
12
+ /** Agent identifier (e.g., "cubi-research-01") */
13
+ agent: string;
14
+ /** LLM model used (e.g., "claude-sonnet-4-20250514") */
15
+ model: string;
16
+ /** Client name or ID */
17
+ client: string;
18
+ /** Project name or ID */
19
+ project: string;
20
+ /** Human-readable task description */
21
+ task: string;
22
+ /** Task category for human-equivalent estimates */
23
+ category: TaskCategory;
24
+ /** ISO 8601 start timestamp */
25
+ start: string;
26
+ /** ISO 8601 end timestamp (null if still running) */
27
+ end: string | null;
28
+ /** Entry status */
29
+ status: EntryStatus;
30
+ /** Input tokens consumed */
31
+ tokens_in: number;
32
+ /** Output tokens generated */
33
+ tokens_out: number;
34
+ /** Estimated cost in USD */
35
+ cost_usd: number;
36
+ /** Number of tool calls made during this entry */
37
+ tool_calls: number;
38
+ /** Agent-generated summary of work done */
39
+ summary: string;
40
+ /** Arbitrary tags for filtering */
41
+ tags: string[];
42
+ /** Source tool/framework that created this entry */
43
+ source: string;
44
+ /** ClawckSpec version */
45
+ spec_version: string;
46
+ }
47
+ export interface HumanEquivalent {
48
+ /** Multiplier: 1 agent-hour ≈ X human-hours */
49
+ multiplier: number;
50
+ /** Assumed human hourly rate for cost savings calc */
51
+ human_rate_usd: number;
52
+ }
53
+ export interface ClawckConfig {
54
+ /** Default client for all entries */
55
+ default_client?: string;
56
+ /** Default project for all entries */
57
+ default_project?: string;
58
+ /** Default agent name */
59
+ default_agent?: string;
60
+ /** Default model */
61
+ default_model?: string;
62
+ /** Default source identifier */
63
+ default_source?: string;
64
+ /** Port for the Clawck server */
65
+ port: number;
66
+ /** Path to the .clawck directory */
67
+ data_dir: string;
68
+ /** Human equivalent multipliers by category */
69
+ human_equivalents: Record<TaskCategory, HumanEquivalent>;
70
+ /** Remote sources for multi-agent aggregation */
71
+ remote_sources?: RemoteSource[];
72
+ /** Sync interval in seconds for remote sources */
73
+ sync_interval?: number;
74
+ }
75
+ export interface RemoteSource {
76
+ name: string;
77
+ url: string;
78
+ api_key?: string;
79
+ }
80
+ export interface SyncState {
81
+ source_name: string;
82
+ last_sync_at: string;
83
+ last_status: 'success' | 'error';
84
+ last_error?: string;
85
+ entries_synced: number;
86
+ }
87
+ export interface TimesheetRow {
88
+ date: string;
89
+ agent: string;
90
+ client: string;
91
+ project: string;
92
+ task: string;
93
+ category: TaskCategory;
94
+ duration_minutes: number;
95
+ tokens_total: number;
96
+ cost_usd: number;
97
+ human_equiv_hours: number;
98
+ human_equiv_cost_saved: number;
99
+ status: EntryStatus;
100
+ }
101
+ export interface TimesheetSummary {
102
+ period_start: string;
103
+ period_end: string;
104
+ total_entries: number;
105
+ total_agent_hours: number;
106
+ total_human_equiv_hours: number;
107
+ total_cost_usd: number;
108
+ total_savings_usd: number;
109
+ total_tokens: number;
110
+ by_client: ClientSummary[];
111
+ by_agent: AgentSummary[];
112
+ by_project: ProjectSummary[];
113
+ by_category: CategorySummary[];
114
+ entries: TimesheetRow[];
115
+ }
116
+ export interface ClientSummary {
117
+ client: string;
118
+ agent_hours: number;
119
+ human_equiv_hours: number;
120
+ cost_usd: number;
121
+ savings_usd: number;
122
+ entries: number;
123
+ }
124
+ export interface AgentSummary {
125
+ agent: string;
126
+ model: string;
127
+ agent_hours: number;
128
+ human_equiv_hours: number;
129
+ cost_usd: number;
130
+ entries: number;
131
+ success_rate: number;
132
+ }
133
+ export interface ProjectSummary {
134
+ project: string;
135
+ client: string;
136
+ agent_hours: number;
137
+ human_equiv_hours: number;
138
+ cost_usd: number;
139
+ entries: number;
140
+ }
141
+ export interface CategorySummary {
142
+ category: TaskCategory;
143
+ agent_hours: number;
144
+ human_equiv_hours: number;
145
+ cost_usd: number;
146
+ savings_usd: number;
147
+ entries: number;
148
+ }
149
+ export interface ClawckStartInput {
150
+ task: string;
151
+ project?: string;
152
+ client?: string;
153
+ category?: TaskCategory;
154
+ agent?: string;
155
+ model?: string;
156
+ tags?: string[];
157
+ }
158
+ export interface ClawckStopInput {
159
+ id: string;
160
+ status?: 'completed' | 'failed';
161
+ summary?: string;
162
+ tokens_in?: number;
163
+ tokens_out?: number;
164
+ cost_usd?: number;
165
+ tool_calls?: number;
166
+ }
167
+ export interface ClawckLogInput {
168
+ task: string;
169
+ project?: string;
170
+ client?: string;
171
+ category?: TaskCategory;
172
+ agent?: string;
173
+ model?: string;
174
+ duration_minutes: number;
175
+ tokens_in?: number;
176
+ tokens_out?: number;
177
+ cost_usd?: number;
178
+ tool_calls?: number;
179
+ summary?: string;
180
+ tags?: string[];
181
+ }
182
+ export declare const SPEC_VERSION = "0.1.0";
183
+ export declare const DEFAULT_HUMAN_EQUIVALENTS: Record<TaskCategory, HumanEquivalent>;
184
+ export declare const DEFAULT_CONFIG: ClawckConfig;
185
+ export declare const TASK_CATEGORIES: TaskCategory[];
186
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * ⏱️🦀 Clawck — Core Types & Schema
4
+ * The data model for AI agent time tracking.
5
+ *
6
+ * ClawckSpec v0.1 — an open standard for agent work entries.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TASK_CATEGORIES = exports.DEFAULT_CONFIG = exports.DEFAULT_HUMAN_EQUIVALENTS = exports.SPEC_VERSION = void 0;
10
+ // ─── Defaults ────────────────────────────────────────────
11
+ exports.SPEC_VERSION = '0.1.0';
12
+ exports.DEFAULT_HUMAN_EQUIVALENTS = {
13
+ research: { multiplier: 12, human_rate_usd: 50 },
14
+ content: { multiplier: 10, human_rate_usd: 45 },
15
+ code: { multiplier: 6, human_rate_usd: 75 },
16
+ data_entry: { multiplier: 20, human_rate_usd: 25 },
17
+ design: { multiplier: 5, human_rate_usd: 60 },
18
+ communication: { multiplier: 8, human_rate_usd: 40 },
19
+ analysis: { multiplier: 10, human_rate_usd: 55 },
20
+ testing: { multiplier: 8, human_rate_usd: 65 },
21
+ planning: { multiplier: 6, human_rate_usd: 50 },
22
+ other: { multiplier: 8, human_rate_usd: 50 },
23
+ };
24
+ exports.DEFAULT_CONFIG = {
25
+ port: 3456,
26
+ data_dir: '.clawck',
27
+ human_equivalents: exports.DEFAULT_HUMAN_EQUIVALENTS,
28
+ sync_interval: 60,
29
+ };
30
+ exports.TASK_CATEGORIES = [
31
+ 'research', 'content', 'code', 'data_entry', 'design',
32
+ 'communication', 'analysis', 'testing', 'planning', 'other',
33
+ ];
34
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA6OH,4DAA4D;AAE/C,QAAA,YAAY,GAAG,OAAO,CAAC;AAEvB,QAAA,yBAAyB,GAA0C;IAC9E,QAAQ,EAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACtD,OAAO,EAAS,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACtD,IAAI,EAAY,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;IACtD,UAAU,EAAM,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACtD,MAAM,EAAU,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;IACtD,aAAa,EAAG,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;IACtD,QAAQ,EAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IACtD,OAAO,EAAS,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;IACtD,QAAQ,EAAQ,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;IACtD,KAAK,EAAW,EAAE,UAAU,EAAE,CAAC,EAAG,cAAc,EAAE,EAAE,EAAE;CACvD,CAAC;AAEW,QAAA,cAAc,GAAiB;IAC1C,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,iCAAyB;IAC5C,aAAa,EAAE,EAAE;CAClB,CAAC;AAEW,QAAA,eAAe,GAAmB;IAC7C,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ;IACrD,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO;CAC5D,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ⏱️🦀 Clawck — Dashboard
3
+ * Self-contained HTML dashboard served by the Clawck server.
4
+ */
5
+ export declare function getDashboardHTML(port: number): string;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+mBrD"}