@schnick371/devsteps-shared 0.5.0 → 0.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/dist/core/add.d.ts +4 -4
- package/dist/core/add.d.ts.map +1 -1
- package/dist/core/add.js +8 -8
- package/dist/core/add.js.map +1 -1
- package/dist/core/archive.d.ts +2 -2
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +12 -12
- package/dist/core/archive.js.map +1 -1
- package/dist/core/bulk-update.d.ts +6 -6
- package/dist/core/bulk-update.d.ts.map +1 -1
- package/dist/core/bulk-update.js +11 -11
- package/dist/core/bulk-update.js.map +1 -1
- package/dist/core/context.d.ts +4 -4
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +14 -14
- package/dist/core/context.js.map +1 -1
- package/dist/core/get.d.ts +1 -1
- package/dist/core/get.d.ts.map +1 -1
- package/dist/core/get.js +5 -5
- package/dist/core/get.js.map +1 -1
- package/dist/core/list.d.ts +3 -3
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +7 -7
- package/dist/core/list.js.map +1 -1
- package/dist/core/update.d.ts +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +7 -7
- package/dist/core/update.js.map +1 -1
- package/dist/schemas/index.d.ts +7 -7
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +5 -5
- package/dist/schemas/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/core/add.js.map +0 -1
- package/src/core/add.ts +0 -145
- package/src/core/archive.js.map +0 -1
- package/src/core/archive.ts +0 -153
- package/src/core/bulk-update.js.map +0 -1
- package/src/core/bulk-update.ts +0 -180
- package/src/core/context.js.map +0 -1
- package/src/core/context.ts +0 -269
- package/src/core/get.js.map +0 -1
- package/src/core/get.ts +0 -39
- package/src/core/index.js.map +0 -1
- package/src/core/index.ts +0 -26
- package/src/core/list.js.map +0 -1
- package/src/core/list.ts +0 -96
- package/src/core/update.js.map +0 -1
- package/src/core/update.ts +0 -154
- package/src/core/validation.ts +0 -252
- package/src/index.js +0 -21
- package/src/index.js.map +0 -1
- package/src/index.ts +0 -4
- package/src/schemas/index.js.map +0 -1
- package/src/schemas/index.ts +0 -226
- package/src/schemas/project.js.map +0 -1
- package/src/schemas/project.ts +0 -73
- package/src/schemas/relationships.ts +0 -48
- package/src/types/commands.js.map +0 -1
- package/src/types/commands.ts +0 -116
- package/src/types/index.js.map +0 -1
- package/src/types/index.ts +0 -13
- package/src/utils/cache.js.map +0 -1
- package/src/utils/cache.ts +0 -200
- package/src/utils/index.js.map +0 -1
- package/src/utils/index.ts +0 -170
package/dist/core/add.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DevStepsConfig, EisenhowerQuadrant, ItemMetadata, ItemType, Priority } from '../schemas/index.js';
|
|
2
2
|
export interface AddItemArgs {
|
|
3
3
|
type: ItemType;
|
|
4
4
|
title: string;
|
|
@@ -13,11 +13,11 @@ export interface AddItemArgs {
|
|
|
13
13
|
export interface AddItemResult {
|
|
14
14
|
itemId: string;
|
|
15
15
|
metadata: ItemMetadata;
|
|
16
|
-
config:
|
|
16
|
+
config: DevStepsConfig;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Core business logic for adding a new item to
|
|
19
|
+
* Core business logic for adding a new item to devsteps
|
|
20
20
|
* Pure function that handles all file I/O and validation
|
|
21
21
|
*/
|
|
22
|
-
export declare function addItem(
|
|
22
|
+
export declare function addItem(devstepsir: string, args: AddItemArgs): Promise<AddItemResult>;
|
|
23
23
|
//# sourceMappingURL=add.d.ts.map
|
package/dist/core/add.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CA8G3F"}
|
package/dist/core/add.js
CHANGED
|
@@ -2,17 +2,17 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { TYPE_TO_DIRECTORY, generateItemId, getCurrentTimestamp } from '../utils/index.js';
|
|
4
4
|
/**
|
|
5
|
-
* Core business logic for adding a new item to
|
|
5
|
+
* Core business logic for adding a new item to devsteps
|
|
6
6
|
* Pure function that handles all file I/O and validation
|
|
7
7
|
*/
|
|
8
|
-
export async function addItem(
|
|
8
|
+
export async function addItem(devstepsir, args) {
|
|
9
9
|
// Check if initialized
|
|
10
|
-
if (!existsSync(
|
|
11
|
-
throw new Error('Project not initialized. Run
|
|
10
|
+
if (!existsSync(devstepsir)) {
|
|
11
|
+
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
12
12
|
}
|
|
13
13
|
// Read config and index
|
|
14
|
-
const configPath = join(
|
|
15
|
-
const indexPath = join(
|
|
14
|
+
const configPath = join(devstepsir, 'config.json');
|
|
15
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
16
16
|
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
17
17
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
18
18
|
// Migration: Initialize counters if missing (for legacy projects)
|
|
@@ -34,7 +34,7 @@ export async function addItem(devcrumbsDir, args) {
|
|
|
34
34
|
// Check for duplicate ID (data integrity validation)
|
|
35
35
|
const existingIds = index.items.map((i) => i.id);
|
|
36
36
|
if (existingIds.includes(itemId)) {
|
|
37
|
-
throw new Error(`Duplicate ID detected: ${itemId}. Index may be corrupted or counter was reset. Please check .
|
|
37
|
+
throw new Error(`Duplicate ID detected: ${itemId}. Index may be corrupted or counter was reset. Please check .devsteps/index.json`);
|
|
38
38
|
}
|
|
39
39
|
// Increment counter
|
|
40
40
|
index.counters[args.type] = counter;
|
|
@@ -71,7 +71,7 @@ export async function addItem(devcrumbsDir, args) {
|
|
|
71
71
|
metadata: {},
|
|
72
72
|
};
|
|
73
73
|
// Save metadata
|
|
74
|
-
const itemDir = join(
|
|
74
|
+
const itemDir = join(devstepsir, typeFolder);
|
|
75
75
|
const metadataPath = join(itemDir, `${itemId}.json`);
|
|
76
76
|
const descriptionPath = join(itemDir, `${itemId}.md`);
|
|
77
77
|
writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
|
package/dist/core/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAoB3F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/core/add.ts"],"names":[],"mappings":"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"}
|
package/dist/core/archive.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface ArchiveItemResult {
|
|
|
7
7
|
/**
|
|
8
8
|
* Core business logic for archiving a single item
|
|
9
9
|
*/
|
|
10
|
-
export declare function archiveItem(
|
|
10
|
+
export declare function archiveItem(devstepsir: string, itemId: string): Promise<ArchiveItemResult>;
|
|
11
11
|
export interface PurgeItemsArgs {
|
|
12
12
|
status?: ItemStatus[];
|
|
13
13
|
type?: string;
|
|
@@ -20,5 +20,5 @@ export interface PurgeItemsResult {
|
|
|
20
20
|
/**
|
|
21
21
|
* Core business logic for bulk archiving items
|
|
22
22
|
*/
|
|
23
|
-
export declare function purgeItems(
|
|
23
|
+
export declare function purgeItems(devstepsir: string, args?: PurgeItemsArgs): Promise<PurgeItemsResult>;
|
|
24
24
|
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGrE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0EhG;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA6C3B"}
|
package/dist/core/archive.js
CHANGED
|
@@ -4,17 +4,17 @@ import { TYPE_TO_DIRECTORY, getCurrentTimestamp, parseItemId } from '../utils/in
|
|
|
4
4
|
/**
|
|
5
5
|
* Core business logic for archiving a single item
|
|
6
6
|
*/
|
|
7
|
-
export async function archiveItem(
|
|
8
|
-
if (!existsSync(
|
|
9
|
-
throw new Error('Project not initialized. Run
|
|
7
|
+
export async function archiveItem(devstepsir, itemId) {
|
|
8
|
+
if (!existsSync(devstepsir)) {
|
|
9
|
+
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
10
10
|
}
|
|
11
11
|
const parsed = parseItemId(itemId);
|
|
12
12
|
if (!parsed) {
|
|
13
13
|
throw new Error(`Invalid item ID: ${itemId}`);
|
|
14
14
|
}
|
|
15
15
|
const typeFolder = TYPE_TO_DIRECTORY[parsed.type];
|
|
16
|
-
const metadataPath = join(
|
|
17
|
-
const descriptionPath = join(
|
|
16
|
+
const metadataPath = join(devstepsir, typeFolder, `${itemId}.json`);
|
|
17
|
+
const descriptionPath = join(devstepsir, typeFolder, `${itemId}.md`);
|
|
18
18
|
if (!existsSync(metadataPath)) {
|
|
19
19
|
throw new Error(`Item not found: ${itemId}`);
|
|
20
20
|
}
|
|
@@ -22,7 +22,7 @@ export async function archiveItem(devcrumbsDir, itemId) {
|
|
|
22
22
|
const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|
|
23
23
|
const originalStatus = metadata.status;
|
|
24
24
|
// Create archive directory if not exists
|
|
25
|
-
const archiveDir = join(
|
|
25
|
+
const archiveDir = join(devstepsir, 'archive', typeFolder);
|
|
26
26
|
mkdirSync(archiveDir, { recursive: true });
|
|
27
27
|
// Move files to archive
|
|
28
28
|
const archiveMetadataPath = join(archiveDir, `${itemId}.json`);
|
|
@@ -32,7 +32,7 @@ export async function archiveItem(devcrumbsDir, itemId) {
|
|
|
32
32
|
renameSync(descriptionPath, archiveDescriptionPath);
|
|
33
33
|
}
|
|
34
34
|
// Update index
|
|
35
|
-
const indexPath = join(
|
|
35
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
36
36
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
37
37
|
// Remove from items
|
|
38
38
|
const itemIndex = index.items.findIndex((i) => i.id === itemId);
|
|
@@ -66,11 +66,11 @@ export async function archiveItem(devcrumbsDir, itemId) {
|
|
|
66
66
|
/**
|
|
67
67
|
* Core business logic for bulk archiving items
|
|
68
68
|
*/
|
|
69
|
-
export async function purgeItems(
|
|
70
|
-
if (!existsSync(
|
|
71
|
-
throw new Error('Project not initialized. Run
|
|
69
|
+
export async function purgeItems(devstepsir, args = {}) {
|
|
70
|
+
if (!existsSync(devstepsir)) {
|
|
71
|
+
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
72
72
|
}
|
|
73
|
-
const indexPath = join(
|
|
73
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
74
74
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
75
75
|
// Find items to archive
|
|
76
76
|
let itemsToArchive = [...index.items];
|
|
@@ -93,7 +93,7 @@ export async function purgeItems(devcrumbsDir, args = {}) {
|
|
|
93
93
|
const archivedIds = [];
|
|
94
94
|
for (const item of itemsToArchive) {
|
|
95
95
|
try {
|
|
96
|
-
await archiveItem(
|
|
96
|
+
await archiveItem(devstepsir, item.id);
|
|
97
97
|
archivedIds.push(item.id);
|
|
98
98
|
}
|
|
99
99
|
catch (error) {
|
package/dist/core/archive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQxF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/core/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQxF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB,EAAE,MAAc;IAClE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB;IAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEvC,yCAAyC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3D,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;IAEhE,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;IACtD,CAAC;IAED,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,KAAK,GAAkB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,oBAAoB;IACpB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAChE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IAClD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;QACxB,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,cAAc;KAChC,CAAC,CAAC;IAEH,eAAe;IACf,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAC9C,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAChD,CAAC,CACF,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IAChC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzD,OAAO;QACL,MAAM;QACN,UAAU;QACV,cAAc;KACf,CAAC;AACJ,CAAC;AAaD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,OAAuB,EAAE;IAEzB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,KAAK,GAAkB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,wBAAwB;IACxB,IAAI,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAEtC,8CAA8C;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,iBAAiB;IACjB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB;IACjB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,OAAO,GAAG,UAAU,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mCAAmC;YACnC,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,MAAM;QACzB,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -9,26 +9,26 @@ export interface BulkUpdateResult {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Bulk update multiple items at once
|
|
12
|
-
* @param
|
|
12
|
+
* @param devstepsir Path to .devsteps directory
|
|
13
13
|
* @param itemIds Array of item IDs to update
|
|
14
14
|
* @param updates Partial item metadata to apply to all items
|
|
15
15
|
* @returns Result with success and failure lists
|
|
16
16
|
*/
|
|
17
|
-
export declare function bulkUpdateItems(
|
|
17
|
+
export declare function bulkUpdateItems(devstepsir: string, itemIds: string[], updates: Partial<ItemMetadata>): Promise<BulkUpdateResult>;
|
|
18
18
|
/**
|
|
19
19
|
* Bulk add tags to multiple items
|
|
20
|
-
* @param
|
|
20
|
+
* @param devstepsir Path to .devsteps directory
|
|
21
21
|
* @param itemIds Array of item IDs
|
|
22
22
|
* @param tagsToAdd Tags to add
|
|
23
23
|
* @returns Result with success and failure lists
|
|
24
24
|
*/
|
|
25
|
-
export declare function bulkAddTags(
|
|
25
|
+
export declare function bulkAddTags(devstepsir: string, itemIds: string[], tagsToAdd: string[]): Promise<BulkUpdateResult>;
|
|
26
26
|
/**
|
|
27
27
|
* Bulk remove tags from multiple items
|
|
28
|
-
* @param
|
|
28
|
+
* @param devstepsir Path to .devsteps directory
|
|
29
29
|
* @param itemIds Array of item IDs
|
|
30
30
|
* @param tagsToRemove Tags to remove
|
|
31
31
|
* @returns Result with success and failure lists
|
|
32
32
|
*/
|
|
33
|
-
export declare function bulkRemoveTags(
|
|
33
|
+
export declare function bulkRemoveTags(devstepsir: string, itemIds: string[], tagsToRemove: string[]): Promise<BulkUpdateResult>;
|
|
34
34
|
//# sourceMappingURL=bulk-update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-update.d.ts","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAIpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,
|
|
1
|
+
{"version":3,"file":"bulk-update.d.ts","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,qBAAqB,CAAC;AAIpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAwD3B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAmD3B"}
|
package/dist/core/bulk-update.js
CHANGED
|
@@ -4,12 +4,12 @@ import { getCurrentTimestamp } from '../utils/index.js';
|
|
|
4
4
|
import { updateItem } from './update.js';
|
|
5
5
|
/**
|
|
6
6
|
* Bulk update multiple items at once
|
|
7
|
-
* @param
|
|
7
|
+
* @param devstepsir Path to .devsteps directory
|
|
8
8
|
* @param itemIds Array of item IDs to update
|
|
9
9
|
* @param updates Partial item metadata to apply to all items
|
|
10
10
|
* @returns Result with success and failure lists
|
|
11
11
|
*/
|
|
12
|
-
export async function bulkUpdateItems(
|
|
12
|
+
export async function bulkUpdateItems(devstepsir, itemIds, updates) {
|
|
13
13
|
const result = {
|
|
14
14
|
success: [],
|
|
15
15
|
failed: [],
|
|
@@ -17,7 +17,7 @@ export async function bulkUpdateItems(devcrumbsDir, itemIds, updates) {
|
|
|
17
17
|
};
|
|
18
18
|
for (const id of itemIds) {
|
|
19
19
|
try {
|
|
20
|
-
await updateItem(
|
|
20
|
+
await updateItem(devstepsir, {
|
|
21
21
|
id,
|
|
22
22
|
...updates,
|
|
23
23
|
});
|
|
@@ -34,12 +34,12 @@ export async function bulkUpdateItems(devcrumbsDir, itemIds, updates) {
|
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Bulk add tags to multiple items
|
|
37
|
-
* @param
|
|
37
|
+
* @param devstepsir Path to .devsteps directory
|
|
38
38
|
* @param itemIds Array of item IDs
|
|
39
39
|
* @param tagsToAdd Tags to add
|
|
40
40
|
* @returns Result with success and failure lists
|
|
41
41
|
*/
|
|
42
|
-
export async function bulkAddTags(
|
|
42
|
+
export async function bulkAddTags(devstepsir, itemIds, tagsToAdd) {
|
|
43
43
|
const result = {
|
|
44
44
|
success: [],
|
|
45
45
|
failed: [],
|
|
@@ -54,7 +54,7 @@ export async function bulkAddTags(devcrumbsDir, itemIds, tagsToAdd) {
|
|
|
54
54
|
if (!type) {
|
|
55
55
|
throw new Error(`Invalid item ID: ${id}`);
|
|
56
56
|
}
|
|
57
|
-
const metadataPath = join(
|
|
57
|
+
const metadataPath = join(devstepsir, folder, `${id}.json`);
|
|
58
58
|
if (!existsSync(metadataPath)) {
|
|
59
59
|
throw new Error(`Item ${id} not found`);
|
|
60
60
|
}
|
|
@@ -68,7 +68,7 @@ export async function bulkAddTags(devcrumbsDir, itemIds, tagsToAdd) {
|
|
|
68
68
|
metadata.updated = getCurrentTimestamp();
|
|
69
69
|
writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
|
|
70
70
|
// Update index
|
|
71
|
-
const indexPath = join(
|
|
71
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
72
72
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
73
73
|
const itemIndex = index.items.findIndex((i) => i.id === id);
|
|
74
74
|
if (itemIndex >= 0) {
|
|
@@ -89,12 +89,12 @@ export async function bulkAddTags(devcrumbsDir, itemIds, tagsToAdd) {
|
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Bulk remove tags from multiple items
|
|
92
|
-
* @param
|
|
92
|
+
* @param devstepsir Path to .devsteps directory
|
|
93
93
|
* @param itemIds Array of item IDs
|
|
94
94
|
* @param tagsToRemove Tags to remove
|
|
95
95
|
* @returns Result with success and failure lists
|
|
96
96
|
*/
|
|
97
|
-
export async function bulkRemoveTags(
|
|
97
|
+
export async function bulkRemoveTags(devstepsir, itemIds, tagsToRemove) {
|
|
98
98
|
const result = {
|
|
99
99
|
success: [],
|
|
100
100
|
failed: [],
|
|
@@ -109,7 +109,7 @@ export async function bulkRemoveTags(devcrumbsDir, itemIds, tagsToRemove) {
|
|
|
109
109
|
if (!type) {
|
|
110
110
|
throw new Error(`Invalid item ID: ${id}`);
|
|
111
111
|
}
|
|
112
|
-
const metadataPath = join(
|
|
112
|
+
const metadataPath = join(devstepsir, folder, `${id}.json`);
|
|
113
113
|
if (!existsSync(metadataPath)) {
|
|
114
114
|
throw new Error(`Item ${id} not found`);
|
|
115
115
|
}
|
|
@@ -119,7 +119,7 @@ export async function bulkRemoveTags(devcrumbsDir, itemIds, tagsToRemove) {
|
|
|
119
119
|
metadata.updated = getCurrentTimestamp();
|
|
120
120
|
writeFileSync(metadataPath, JSON.stringify(metadata, null, 2));
|
|
121
121
|
// Update index
|
|
122
|
-
const indexPath = join(
|
|
122
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
123
123
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
124
124
|
const itemIndex = index.items.findIndex((i) => i.id === id);
|
|
125
125
|
if (itemIndex >= 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-update.js","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,
|
|
1
|
+
{"version":3,"file":"bulk-update.js","sourceRoot":"","sources":["../../src/core/bulk-update.ts"],"names":[],"mappings":"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"}
|
package/dist/core/context.d.ts
CHANGED
|
@@ -33,15 +33,15 @@ export declare function analyzePackages(projectDir: string): Promise<PackageInfo
|
|
|
33
33
|
/**
|
|
34
34
|
* Get item counts from index (with caching)
|
|
35
35
|
*/
|
|
36
|
-
export declare function getItemCounts(
|
|
36
|
+
export declare function getItemCounts(devstepsir: string): Promise<ItemCounts>;
|
|
37
37
|
/**
|
|
38
38
|
* Get recent updates (last N days) (with caching)
|
|
39
39
|
*/
|
|
40
|
-
export declare function getRecentUpdates(
|
|
40
|
+
export declare function getRecentUpdates(devstepsir: string, days: number): Promise<RecentUpdate[]>;
|
|
41
41
|
/**
|
|
42
42
|
* Read PROJECT.md if exists (with caching)
|
|
43
43
|
*/
|
|
44
|
-
export declare function readProjectMd(
|
|
44
|
+
export declare function readProjectMd(devstepsir: string): Promise<QuickContext | null>;
|
|
45
45
|
/**
|
|
46
46
|
* Estimate token count (rough approximation: 1 token ≈ 4 chars)
|
|
47
47
|
*/
|
|
@@ -49,6 +49,6 @@ export declare function estimateTokens(obj: unknown): number;
|
|
|
49
49
|
/**
|
|
50
50
|
* Get quick context
|
|
51
51
|
*/
|
|
52
|
-
export declare function getQuickContext(projectDir: string,
|
|
52
|
+
export declare function getQuickContext(projectDir: string, devstepsir: string): Promise<ContextResponse>;
|
|
53
53
|
export {};
|
|
54
54
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,YAAY,EAAE,UAAU,CAAC;QACzB,cAAc,EAAE,YAAY,EAAE,CAAC;KAChC,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyChF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGxE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE;QACf,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,YAAY,EAAE,UAAU,CAAC;QACzB,cAAc,EAAE,YAAY,EAAE,CAAC;KAChC,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAyChF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAiC3E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAsChG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAkDpF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGnD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAoC1B"}
|
package/dist/core/context.js
CHANGED
|
@@ -44,10 +44,10 @@ export async function analyzePackages(projectDir) {
|
|
|
44
44
|
/**
|
|
45
45
|
* Get item counts from index (with caching)
|
|
46
46
|
*/
|
|
47
|
-
export async function getItemCounts(
|
|
47
|
+
export async function getItemCounts(devstepsir) {
|
|
48
48
|
const cache = getCache();
|
|
49
|
-
const cacheKey = `item_counts:${
|
|
50
|
-
const indexPath = path.join(
|
|
49
|
+
const cacheKey = `item_counts:${devstepsir}`;
|
|
50
|
+
const indexPath = path.join(devstepsir, 'index.json');
|
|
51
51
|
// Try cache first
|
|
52
52
|
const cached = cache.get(cacheKey, CACHE_CONFIG.ITEM_COUNTS_TTL, indexPath);
|
|
53
53
|
if (cached) {
|
|
@@ -76,10 +76,10 @@ export async function getItemCounts(devcrumbsDir) {
|
|
|
76
76
|
/**
|
|
77
77
|
* Get recent updates (last N days) (with caching)
|
|
78
78
|
*/
|
|
79
|
-
export async function getRecentUpdates(
|
|
79
|
+
export async function getRecentUpdates(devstepsir, days) {
|
|
80
80
|
const cache = getCache();
|
|
81
|
-
const cacheKey = `recent_updates:${
|
|
82
|
-
const indexPath = path.join(
|
|
81
|
+
const cacheKey = `recent_updates:${devstepsir}:${days}`;
|
|
82
|
+
const indexPath = path.join(devstepsir, 'index.json');
|
|
83
83
|
// Try cache first
|
|
84
84
|
const cached = cache.get(cacheKey, CACHE_CONFIG.RECENT_UPDATES_TTL, indexPath);
|
|
85
85
|
if (cached) {
|
|
@@ -110,10 +110,10 @@ export async function getRecentUpdates(devcrumbsDir, days) {
|
|
|
110
110
|
/**
|
|
111
111
|
* Read PROJECT.md if exists (with caching)
|
|
112
112
|
*/
|
|
113
|
-
export async function readProjectMd(
|
|
113
|
+
export async function readProjectMd(devstepsir) {
|
|
114
114
|
const cache = getCache();
|
|
115
|
-
const cacheKey = `project_md:${
|
|
116
|
-
const projectPath = path.join(
|
|
115
|
+
const cacheKey = `project_md:${devstepsir}`;
|
|
116
|
+
const projectPath = path.join(devstepsir, 'PROJECT.md');
|
|
117
117
|
// Try cache first
|
|
118
118
|
const cached = cache.get(cacheKey, CACHE_CONFIG.PROJECT_MD_TTL, projectPath);
|
|
119
119
|
if (cached !== null) {
|
|
@@ -164,11 +164,11 @@ export function estimateTokens(obj) {
|
|
|
164
164
|
/**
|
|
165
165
|
* Get quick context
|
|
166
166
|
*/
|
|
167
|
-
export async function getQuickContext(projectDir,
|
|
167
|
+
export async function getQuickContext(projectDir, devstepsir) {
|
|
168
168
|
const packages = await analyzePackages(projectDir);
|
|
169
|
-
const activeItems = await getItemCounts(
|
|
170
|
-
const recentUpdates = await getRecentUpdates(
|
|
171
|
-
const staticContext = await readProjectMd(
|
|
169
|
+
const activeItems = await getItemCounts(devstepsir);
|
|
170
|
+
const recentUpdates = await getRecentUpdates(devstepsir, 7);
|
|
171
|
+
const staticContext = await readProjectMd(devstepsir);
|
|
172
172
|
const response = {
|
|
173
173
|
context_level: 'quick',
|
|
174
174
|
tokens_used: 0,
|
|
@@ -185,7 +185,7 @@ export async function getQuickContext(projectDir, devcrumbsDir) {
|
|
|
185
185
|
// Add suggestions
|
|
186
186
|
const suggestions = [];
|
|
187
187
|
if (!staticContext) {
|
|
188
|
-
suggestions.push('Consider creating .
|
|
188
|
+
suggestions.push('Consider creating .devsteps/PROJECT.md for static context');
|
|
189
189
|
}
|
|
190
190
|
if (activeItems.by_status.blocked > 0) {
|
|
191
191
|
suggestions.push(`${activeItems.by_status.blocked} blocked items need attention`);
|
package/dist/core/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiC3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,oBAAoB,UAAU,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,kBAAkB;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAgB,QAAQ,EAAE,YAAY,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAClG,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAEhC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;wBAC5B,OAAO,EAAE,GAAG,CAAC,WAAW,IAAI,gBAAgB;wBAC5C,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;qBAClD,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
|
package/dist/core/get.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export interface GetItemResult {
|
|
|
6
6
|
/**
|
|
7
7
|
* Core business logic for getting an item
|
|
8
8
|
*/
|
|
9
|
-
export declare function getItem(
|
|
9
|
+
export declare function getItem(devstepsir: string, itemId: string): Promise<GetItemResult>;
|
|
10
10
|
//# sourceMappingURL=get.d.ts.map
|
package/dist/core/get.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyBxF"}
|
package/dist/core/get.js
CHANGED
|
@@ -4,17 +4,17 @@ import { TYPE_TO_DIRECTORY, parseItemId } from '../utils/index.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Core business logic for getting an item
|
|
6
6
|
*/
|
|
7
|
-
export async function getItem(
|
|
8
|
-
if (!existsSync(
|
|
9
|
-
throw new Error('Project not initialized. Run
|
|
7
|
+
export async function getItem(devstepsir, itemId) {
|
|
8
|
+
if (!existsSync(devstepsir)) {
|
|
9
|
+
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
10
10
|
}
|
|
11
11
|
const parsed = parseItemId(itemId);
|
|
12
12
|
if (!parsed) {
|
|
13
13
|
throw new Error(`Invalid item ID: ${itemId}`);
|
|
14
14
|
}
|
|
15
15
|
const typeFolder = TYPE_TO_DIRECTORY[parsed.type];
|
|
16
|
-
const metadataPath = join(
|
|
17
|
-
const descriptionPath = join(
|
|
16
|
+
const metadataPath = join(devstepsir, typeFolder, `${itemId}.json`);
|
|
17
|
+
const descriptionPath = join(devstepsir, typeFolder, `${itemId}.md`);
|
|
18
18
|
if (!existsSync(metadataPath)) {
|
|
19
19
|
throw new Error(`Item not found: ${itemId}`);
|
|
20
20
|
}
|
package/dist/core/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/core/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAkB,EAAE,MAAc;IAC9D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAiB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,OAAO;QACL,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/core/list.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DevStepsIndex, EisenhowerQuadrant, ItemStatus, ItemType, Priority } from '../schemas/index.js';
|
|
2
2
|
export interface ListItemsArgs {
|
|
3
3
|
type?: ItemType;
|
|
4
4
|
status?: ItemStatus;
|
|
@@ -10,10 +10,10 @@ export interface ListItemsArgs {
|
|
|
10
10
|
}
|
|
11
11
|
export interface ListItemsResult {
|
|
12
12
|
count: number;
|
|
13
|
-
items:
|
|
13
|
+
items: DevStepsIndex['items'];
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Core business logic for listing items with filters
|
|
17
17
|
*/
|
|
18
|
-
export declare function listItems(
|
|
18
|
+
export declare function listItems(devstepsir: string, args?: ListItemsArgs): Promise<ListItemsResult>;
|
|
19
19
|
//# sourceMappingURL=list.d.ts.map
|
package/dist/core/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CA+D1B"}
|
package/dist/core/list.js
CHANGED
|
@@ -4,11 +4,11 @@ import { TYPE_TO_DIRECTORY } from '../utils/index.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Core business logic for listing items with filters
|
|
6
6
|
*/
|
|
7
|
-
export async function listItems(
|
|
8
|
-
if (!existsSync(
|
|
9
|
-
throw new Error('Project not initialized. Run
|
|
7
|
+
export async function listItems(devstepsir, args = {}) {
|
|
8
|
+
if (!existsSync(devstepsir)) {
|
|
9
|
+
throw new Error('Project not initialized. Run devsteps-init first.');
|
|
10
10
|
}
|
|
11
|
-
const indexPath = join(
|
|
11
|
+
const indexPath = join(devstepsir, 'index.json');
|
|
12
12
|
const index = JSON.parse(readFileSync(indexPath, 'utf-8'));
|
|
13
13
|
let items = [...index.items];
|
|
14
14
|
// Apply filters
|
|
@@ -24,7 +24,7 @@ export async function listItems(devcrumbsDir, args = {}) {
|
|
|
24
24
|
if (args.assignee) {
|
|
25
25
|
// Load full metadata for assignee filter
|
|
26
26
|
items = items.filter((i) => {
|
|
27
|
-
const metadataPath = join(
|
|
27
|
+
const metadataPath = join(devstepsir, TYPE_TO_DIRECTORY[i.type], `${i.id}.json`);
|
|
28
28
|
if (!existsSync(metadataPath))
|
|
29
29
|
return false;
|
|
30
30
|
const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|
|
@@ -35,7 +35,7 @@ export async function listItems(devcrumbsDir, args = {}) {
|
|
|
35
35
|
// Load full metadata for tags filter
|
|
36
36
|
const filterTags = args.tags;
|
|
37
37
|
items = items.filter((i) => {
|
|
38
|
-
const metadataPath = join(
|
|
38
|
+
const metadataPath = join(devstepsir, TYPE_TO_DIRECTORY[i.type], `${i.id}.json`);
|
|
39
39
|
if (!existsSync(metadataPath))
|
|
40
40
|
return false;
|
|
41
41
|
const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|
|
@@ -45,7 +45,7 @@ export async function listItems(devcrumbsDir, args = {}) {
|
|
|
45
45
|
if (args.eisenhower) {
|
|
46
46
|
// Load full metadata for eisenhower filter
|
|
47
47
|
items = items.filter((i) => {
|
|
48
|
-
const metadataPath = join(
|
|
48
|
+
const metadataPath = join(devstepsir, TYPE_TO_DIRECTORY[i.type], `${i.id}.json`);
|
|
49
49
|
if (!existsSync(metadataPath))
|
|
50
50
|
return false;
|
|
51
51
|
const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
|