@backlog-md/core 0.3.7 → 0.3.9

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.
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Integration tests for Milestone CRUD telemetry
3
+ *
4
+ * These tests exercise the milestone CRUD operations and send telemetry
5
+ * to the local OTEL collector for visualization.
6
+ */
7
+ import { describe, test, expect, beforeAll, afterAll } from "bun:test";
8
+ import { context, trace, ROOT_CONTEXT, SpanStatusCode } from "@opentelemetry/api";
9
+ import { InMemoryFileSystemAdapter } from "@principal-ai/repository-abstraction";
10
+ import { Core } from "../core/Core";
11
+ import { getTracer } from "../telemetry";
12
+ import { setupOTEL, shutdownOTEL } from "./otel-setup";
13
+ async function createTestCore() {
14
+ const fs = new InMemoryFileSystemAdapter();
15
+ await fs.writeFile("/project/backlog/config.yml", `projectName: Test Project
16
+ statuses:
17
+ - To Do
18
+ - In Progress
19
+ - Done
20
+ defaultStatus: To Do
21
+ `);
22
+ await fs.createDir("/project/backlog/tasks", { recursive: true });
23
+ await fs.createDir("/project/backlog/milestones", { recursive: true });
24
+ const core = new Core({
25
+ projectRoot: "/project",
26
+ adapters: { fs },
27
+ });
28
+ await core.initialize();
29
+ return core;
30
+ }
31
+ /**
32
+ * Run a test function within its own trace context.
33
+ * Creates a root span for the test so all operations are children of it.
34
+ */
35
+ async function withTestTrace(testName, fn) {
36
+ const tracer = getTracer();
37
+ // Start span with ROOT_CONTEXT to ensure new trace
38
+ const span = tracer.startSpan(testName, {}, ROOT_CONTEXT);
39
+ try {
40
+ // Run the test function with this span as the active context
41
+ const ctx = trace.setSpan(ROOT_CONTEXT, span);
42
+ const result = await context.with(ctx, async () => {
43
+ return await fn();
44
+ });
45
+ span.setStatus({ code: SpanStatusCode.OK });
46
+ return result;
47
+ }
48
+ catch (error) {
49
+ span.setStatus({
50
+ code: SpanStatusCode.ERROR,
51
+ message: error instanceof Error ? error.message : String(error),
52
+ });
53
+ throw error;
54
+ }
55
+ finally {
56
+ span.end();
57
+ }
58
+ }
59
+ describe("Milestone CRUD telemetry", () => {
60
+ beforeAll(async () => {
61
+ await setupOTEL({
62
+ serviceName: "@backlog-md/core-test",
63
+ });
64
+ });
65
+ afterAll(async () => {
66
+ await shutdownOTEL();
67
+ });
68
+ test("createMilestone() emits telemetry", async () => {
69
+ await withTestTrace("test.milestone.create", async () => {
70
+ const core = await createTestCore();
71
+ const milestone = await core.createMilestone({
72
+ title: "Test milestone for telemetry",
73
+ description: "A test milestone",
74
+ });
75
+ expect(milestone.id).toBe("m-0");
76
+ expect(milestone.title).toBe("Test milestone for telemetry");
77
+ });
78
+ console.log("[TEST] createMilestone telemetry sent to collector");
79
+ });
80
+ test("createMilestone() without description emits telemetry", async () => {
81
+ await withTestTrace("test.milestone.create.no-description", async () => {
82
+ const core = await createTestCore();
83
+ const milestone = await core.createMilestone({
84
+ title: "Milestone without description",
85
+ });
86
+ expect(milestone.id).toBe("m-0");
87
+ expect(milestone.description).toBe("Milestone: Milestone without description");
88
+ });
89
+ console.log("[TEST] createMilestone (no description) telemetry sent to collector");
90
+ });
91
+ test("updateMilestone() emits telemetry", async () => {
92
+ await withTestTrace("test.milestone.update", async () => {
93
+ const core = await createTestCore();
94
+ // Create a milestone first
95
+ const milestone = await core.createMilestone({
96
+ title: "Milestone to update",
97
+ });
98
+ // Update the milestone
99
+ const updated = await core.updateMilestone(milestone.id, {
100
+ title: "Updated milestone title",
101
+ description: "Updated description",
102
+ });
103
+ expect(updated).not.toBeNull();
104
+ expect(updated?.title).toBe("Updated milestone title");
105
+ expect(updated?.description).toBe("Updated description");
106
+ });
107
+ console.log("[TEST] updateMilestone telemetry sent to collector");
108
+ });
109
+ test("updateMilestone() with non-existent ID emits telemetry", async () => {
110
+ await withTestTrace("test.milestone.update.not-found", async () => {
111
+ const core = await createTestCore();
112
+ // Try to update a non-existent milestone
113
+ const updated = await core.updateMilestone("m-999", {
114
+ title: "Should not update",
115
+ });
116
+ expect(updated).toBeNull();
117
+ });
118
+ console.log("[TEST] updateMilestone (not found) telemetry sent to collector");
119
+ });
120
+ test("deleteMilestone() emits telemetry", async () => {
121
+ await withTestTrace("test.milestone.delete", async () => {
122
+ const core = await createTestCore();
123
+ // Create a milestone first
124
+ const milestone = await core.createMilestone({
125
+ title: "Milestone to delete",
126
+ });
127
+ // Delete the milestone
128
+ const deleted = await core.deleteMilestone(milestone.id);
129
+ expect(deleted).toBe(true);
130
+ });
131
+ console.log("[TEST] deleteMilestone telemetry sent to collector");
132
+ });
133
+ test("deleteMilestone() with non-existent ID emits telemetry", async () => {
134
+ await withTestTrace("test.milestone.delete.not-found", async () => {
135
+ const core = await createTestCore();
136
+ // Try to delete a non-existent milestone
137
+ const deleted = await core.deleteMilestone("m-999");
138
+ expect(deleted).toBe(false);
139
+ });
140
+ console.log("[TEST] deleteMilestone (not found) telemetry sent to collector");
141
+ });
142
+ });
143
+ //# sourceMappingURL=milestone-crud.otel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestone-crud.otel.test.js","sourceRoot":"","sources":["../../src/test/milestone-crud.otel.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * OpenTelemetry test setup for Backlog-Core
3
+ *
4
+ * This module configures a tracer provider that sends telemetry to a local
5
+ * OpenTelemetry collector. Use this in integration tests to capture real
6
+ * telemetry data.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import { setupOTEL, shutdownOTEL } from './test/otel-setup';
11
+ *
12
+ * beforeAll(async () => {
13
+ * await setupOTEL();
14
+ * });
15
+ *
16
+ * afterAll(async () => {
17
+ * await shutdownOTEL();
18
+ * });
19
+ * ```
20
+ */
21
+ export interface OTELSetupOptions {
22
+ /**
23
+ * OTLP collector endpoint
24
+ * @default 'http://localhost:4318/v1/traces'
25
+ */
26
+ endpoint?: string;
27
+ /**
28
+ * Service name for telemetry
29
+ * @default '@backlog-md/core-test'
30
+ */
31
+ serviceName?: string;
32
+ }
33
+ /**
34
+ * Set up OpenTelemetry with OTLP HTTP exporter
35
+ *
36
+ * This registers a global tracer provider that sends spans to the configured
37
+ * OTLP collector endpoint. Call this in beforeAll() of your test suite.
38
+ */
39
+ export declare function setupOTEL(options?: OTELSetupOptions): Promise<void>;
40
+ /**
41
+ * Shutdown OpenTelemetry and flush pending spans
42
+ *
43
+ * Call this in afterAll() to ensure all spans are exported before tests end.
44
+ */
45
+ export declare function shutdownOTEL(): Promise<void>;
46
+ /**
47
+ * Force flush pending spans without shutting down
48
+ *
49
+ * Useful for ensuring spans are exported mid-test.
50
+ */
51
+ export declare function flushOTEL(): Promise<void>;
52
+ //# sourceMappingURL=otel-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-setup.d.ts","sourceRoot":"","sources":["../../src/test/otel-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAYH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B7E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD;AAED;;;;GAIG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * OpenTelemetry test setup for Backlog-Core
3
+ *
4
+ * This module configures a tracer provider that sends telemetry to a local
5
+ * OpenTelemetry collector. Use this in integration tests to capture real
6
+ * telemetry data.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import { setupOTEL, shutdownOTEL } from './test/otel-setup';
11
+ *
12
+ * beforeAll(async () => {
13
+ * await setupOTEL();
14
+ * });
15
+ *
16
+ * afterAll(async () => {
17
+ * await shutdownOTEL();
18
+ * });
19
+ * ```
20
+ */
21
+ import { trace } from "@opentelemetry/api";
22
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
23
+ import { resourceFromAttributes } from "@opentelemetry/resources";
24
+ import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
25
+ import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
26
+ import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
27
+ import { TRACER_NAME, TRACER_VERSION } from "../telemetry";
28
+ let tracerProvider = null;
29
+ /**
30
+ * Set up OpenTelemetry with OTLP HTTP exporter
31
+ *
32
+ * This registers a global tracer provider that sends spans to the configured
33
+ * OTLP collector endpoint. Call this in beforeAll() of your test suite.
34
+ */
35
+ export async function setupOTEL(options = {}) {
36
+ const endpoint = options.endpoint ?? "http://localhost:4318/v1/traces";
37
+ const serviceName = options.serviceName ?? "@backlog-md/core-test";
38
+ // Create OTLP exporter
39
+ const exporter = new OTLPTraceExporter({
40
+ url: endpoint,
41
+ });
42
+ // Create resource with service info
43
+ const resource = resourceFromAttributes({
44
+ [ATTR_SERVICE_NAME]: serviceName,
45
+ [ATTR_SERVICE_VERSION]: TRACER_VERSION,
46
+ "library.name": TRACER_NAME,
47
+ "library.version": TRACER_VERSION,
48
+ "test.framework": "bun",
49
+ });
50
+ // Create and register tracer provider
51
+ tracerProvider = new NodeTracerProvider({
52
+ resource,
53
+ spanProcessors: [new SimpleSpanProcessor(exporter)],
54
+ });
55
+ // Register globally so getTracer() returns a real tracer
56
+ tracerProvider.register();
57
+ console.log(`[OTEL] Initialized tracer provider, exporting to ${endpoint}`);
58
+ }
59
+ /**
60
+ * Shutdown OpenTelemetry and flush pending spans
61
+ *
62
+ * Call this in afterAll() to ensure all spans are exported before tests end.
63
+ */
64
+ export async function shutdownOTEL() {
65
+ if (tracerProvider) {
66
+ await tracerProvider.shutdown();
67
+ tracerProvider = null;
68
+ trace.disable();
69
+ console.log("[OTEL] Tracer provider shut down");
70
+ }
71
+ }
72
+ /**
73
+ * Force flush pending spans without shutting down
74
+ *
75
+ * Useful for ensuring spans are exported mid-test.
76
+ */
77
+ export async function flushOTEL() {
78
+ if (tracerProvider) {
79
+ await tracerProvider.forceFlush();
80
+ }
81
+ }
82
+ //# sourceMappingURL=otel-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-setup.js","sourceRoot":"","sources":["../../src/test/otel-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3D,IAAI,cAAc,GAA8B,IAAI,CAAC;AAgBrD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAA4B,EAAE;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iCAAiC,CAAC;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAC;IAEnE,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;QACrC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,CAAC,iBAAiB,CAAC,EAAE,WAAW;QAChC,CAAC,oBAAoB,CAAC,EAAE,cAAc;QACtC,cAAc,EAAE,WAAW;QAC3B,iBAAiB,EAAE,cAAc;QACjC,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,sCAAsC;IACtC,cAAc,GAAG,IAAI,kBAAkB,CAAC;QACtC,QAAQ;QACR,cAAc,EAAE,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;KACpD,CAAC,CAAC;IAEH,yDAAyD;IACzD,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,oDAAoD,QAAQ,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC;QAChC,cAAc,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Integration tests for Task CRUD telemetry
3
+ *
4
+ * These tests exercise the task CRUD operations and send telemetry
5
+ * to the local OTEL collector for visualization.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=task-crud.otel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-crud.otel.test.d.ts","sourceRoot":"","sources":["../../src/test/task-crud.otel.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Integration tests for Task CRUD telemetry
3
+ *
4
+ * These tests exercise the task CRUD operations and send telemetry
5
+ * to the local OTEL collector for visualization.
6
+ */
7
+ import { describe, test, expect, beforeAll, afterAll } from "bun:test";
8
+ import { context, trace, ROOT_CONTEXT, SpanStatusCode } from "@opentelemetry/api";
9
+ import { InMemoryFileSystemAdapter } from "@principal-ai/repository-abstraction";
10
+ import { setupOTEL, shutdownOTEL } from "./otel-setup";
11
+ import { Core } from "../core/Core";
12
+ import { getTracer } from "../telemetry";
13
+ async function createTestCore() {
14
+ const fs = new InMemoryFileSystemAdapter();
15
+ await fs.writeFile("/project/backlog/config.yml", `projectName: Test Project
16
+ statuses:
17
+ - To Do
18
+ - In Progress
19
+ - Done
20
+ defaultStatus: To Do
21
+ `);
22
+ await fs.createDir("/project/backlog/tasks", { recursive: true });
23
+ const core = new Core({
24
+ projectRoot: "/project",
25
+ adapters: { fs },
26
+ });
27
+ await core.initialize();
28
+ return core;
29
+ }
30
+ /**
31
+ * Run a test function within its own trace context.
32
+ * Creates a root span for the test so all operations are children of it.
33
+ * Flushes telemetry before returning to ensure trace isolation.
34
+ */
35
+ async function withTestTrace(testName, fn) {
36
+ const tracer = getTracer();
37
+ // Start span with ROOT_CONTEXT to ensure new trace
38
+ const span = tracer.startSpan(testName, {}, ROOT_CONTEXT);
39
+ try {
40
+ // Run the test function with this span as the active context
41
+ const ctx = trace.setSpan(ROOT_CONTEXT, span);
42
+ const result = await context.with(ctx, async () => {
43
+ return await fn();
44
+ });
45
+ span.setStatus({ code: SpanStatusCode.OK });
46
+ return result;
47
+ }
48
+ catch (error) {
49
+ span.setStatus({
50
+ code: SpanStatusCode.ERROR,
51
+ message: error instanceof Error ? error.message : String(error),
52
+ });
53
+ throw error;
54
+ }
55
+ finally {
56
+ span.end();
57
+ // Note: Relying on shutdown to flush - per-test flush can hang on 502 retries
58
+ }
59
+ }
60
+ describe("Task CRUD telemetry", () => {
61
+ beforeAll(async () => {
62
+ await setupOTEL({
63
+ serviceName: "@backlog-md/core-test",
64
+ });
65
+ });
66
+ afterAll(async () => {
67
+ await shutdownOTEL();
68
+ });
69
+ test("createTask() emits telemetry", async () => {
70
+ await withTestTrace("test.task.create", async () => {
71
+ const core = await createTestCore();
72
+ const task = await core.createTask({
73
+ title: "Test task for telemetry",
74
+ status: "To Do",
75
+ });
76
+ expect(task.id).toBe("1");
77
+ expect(task.title).toBe("Test task for telemetry");
78
+ });
79
+ console.log("[TEST] createTask telemetry sent to collector");
80
+ });
81
+ test("updateTask() emits telemetry", async () => {
82
+ await withTestTrace("test.task.update", async () => {
83
+ const core = await createTestCore();
84
+ // Create a task first
85
+ const task = await core.createTask({
86
+ title: "Task to update",
87
+ status: "To Do",
88
+ });
89
+ // Update the task
90
+ const updated = await core.updateTask(task.id, {
91
+ title: "Updated task title",
92
+ status: "In Progress",
93
+ });
94
+ expect(updated).not.toBeNull();
95
+ expect(updated?.title).toBe("Updated task title");
96
+ expect(updated?.status).toBe("In Progress");
97
+ });
98
+ console.log("[TEST] updateTask telemetry sent to collector");
99
+ });
100
+ test("deleteTask() emits telemetry", async () => {
101
+ await withTestTrace("test.task.delete", async () => {
102
+ const core = await createTestCore();
103
+ // Create a task first
104
+ const task = await core.createTask({
105
+ title: "Task to delete",
106
+ });
107
+ // Delete the task
108
+ const deleted = await core.deleteTask(task.id);
109
+ expect(deleted).toBe(true);
110
+ });
111
+ console.log("[TEST] deleteTask telemetry sent to collector");
112
+ });
113
+ test("archiveTask() emits telemetry", async () => {
114
+ await withTestTrace("test.task.archive", async () => {
115
+ const core = await createTestCore();
116
+ // Create a task first
117
+ const task = await core.createTask({
118
+ title: "Task to archive",
119
+ });
120
+ // Archive the task
121
+ const archived = await core.archiveTask(task.id);
122
+ expect(archived).not.toBeNull();
123
+ expect(archived?.source).toBe("completed");
124
+ });
125
+ console.log("[TEST] archiveTask telemetry sent to collector");
126
+ });
127
+ test("restoreTask() emits telemetry", async () => {
128
+ await withTestTrace("test.task.restore", async () => {
129
+ const core = await createTestCore();
130
+ // Create and archive a task first
131
+ const task = await core.createTask({
132
+ title: "Task to restore",
133
+ });
134
+ await core.archiveTask(task.id);
135
+ // Restore the task
136
+ const restored = await core.restoreTask(task.id);
137
+ expect(restored).not.toBeNull();
138
+ expect(restored?.source).toBe("local");
139
+ });
140
+ console.log("[TEST] restoreTask telemetry sent to collector");
141
+ });
142
+ test("updateTask() with non-existent ID emits telemetry", async () => {
143
+ await withTestTrace("test.task.update.not-found", async () => {
144
+ const core = await createTestCore();
145
+ // Try to update a non-existent task
146
+ const updated = await core.updateTask("999", {
147
+ title: "Should not update",
148
+ });
149
+ expect(updated).toBeNull();
150
+ });
151
+ console.log("[TEST] updateTask (not found) telemetry sent to collector");
152
+ });
153
+ test("deleteTask() with non-existent ID emits telemetry", async () => {
154
+ await withTestTrace("test.task.delete.not-found", async () => {
155
+ const core = await createTestCore();
156
+ // Try to delete a non-existent task
157
+ const deleted = await core.deleteTask("999");
158
+ expect(deleted).toBe(false);
159
+ });
160
+ console.log("[TEST] deleteTask (not found) telemetry sent to collector");
161
+ });
162
+ test("archiveTask() with non-existent ID emits telemetry", async () => {
163
+ await withTestTrace("test.task.archive.not-found", async () => {
164
+ const core = await createTestCore();
165
+ // Try to archive a non-existent task
166
+ const archived = await core.archiveTask("999");
167
+ expect(archived).toBeNull();
168
+ });
169
+ console.log("[TEST] archiveTask (not found) telemetry sent to collector");
170
+ });
171
+ test("restoreTask() with non-existent ID emits telemetry", async () => {
172
+ await withTestTrace("test.task.restore.not-found", async () => {
173
+ const core = await createTestCore();
174
+ // Try to restore a non-existent task
175
+ const restored = await core.restoreTask("999");
176
+ expect(restored).toBeNull();
177
+ });
178
+ console.log("[TEST] restoreTask (not found) telemetry sent to collector");
179
+ });
180
+ });
181
+ //# sourceMappingURL=task-crud.otel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-crud.otel.test.js","sourceRoot":"","sources":["../../src/test/task-crud.otel.test.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare const DEFAULT_TASK_STATUSES: {
14
14
  /**
15
15
  * Default task status type (type-safe)
16
16
  */
17
- export type DefaultTaskStatus = typeof DEFAULT_TASK_STATUSES[keyof typeof DEFAULT_TASK_STATUSES];
17
+ export type DefaultTaskStatus = (typeof DEFAULT_TASK_STATUSES)[keyof typeof DEFAULT_TASK_STATUSES];
18
18
  /**
19
19
  * Task status can be any string (for custom statuses), but defaults are type-safe
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backlog-md/core",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "Runtime-agnostic core package for Backlog.md task management",
5
5
  "author": "Backlog.md Team",
6
6
  "license": "MIT",
@@ -56,11 +56,16 @@
56
56
  "prepare": "husky"
57
57
  },
58
58
  "dependencies": {
59
+ "@opentelemetry/api": "^1.9.0",
59
60
  "@principal-ai/repository-abstraction": "^0.4.0",
60
61
  "yaml": "^2.8.1"
61
62
  },
62
63
  "devDependencies": {
63
64
  "@biomejs/biome": "^2.3.10",
65
+ "@opentelemetry/exporter-trace-otlp-http": "^0.212.0",
66
+ "@opentelemetry/resources": "^2.5.1",
67
+ "@opentelemetry/sdk-trace-node": "^2.5.1",
68
+ "@opentelemetry/semantic-conventions": "^1.40.0",
64
69
  "@types/bun": "^1.1.20",
65
70
  "husky": "^9.1.7",
66
71
  "lint-staged": "^15.2.0",