@jami-studio/pinpoint 0.1.12
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/.agents/skills/pinpoint/SKILL.md +77 -0
- package/README.md +412 -0
- package/dist/agent-context-HBCZ4MBN.js +13 -0
- package/dist/agent-context-HBCZ4MBN.js.map +1 -0
- package/dist/chunk-B7TY4FPP.js +569 -0
- package/dist/chunk-B7TY4FPP.js.map +1 -0
- package/dist/chunk-CGJZ7BOM.js +88 -0
- package/dist/chunk-CGJZ7BOM.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +11 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-HAEYE6KB.js +25 -0
- package/dist/chunk-HAEYE6KB.js.map +1 -0
- package/dist/chunk-J5PXKVTM.js +53 -0
- package/dist/chunk-J5PXKVTM.js.map +1 -0
- package/dist/chunk-XBX2J7WU.js +94 -0
- package/dist/chunk-XBX2J7WU.js.map +1 -0
- package/dist/chunk-ZW7IO3EW.js +4927 -0
- package/dist/chunk-ZW7IO3EW.js.map +1 -0
- package/dist/cli.js +71 -0
- package/dist/cli.js.map +1 -0
- package/dist/formatter-CR4COA5Z.js +8 -0
- package/dist/formatter-CR4COA5Z.js.map +1 -0
- package/dist/index-NvFcZ4SO.d.ts +200 -0
- package/dist/index.browser.d.ts +377 -0
- package/dist/index.browser.js +620 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.js +936 -0
- package/dist/index.js.map +1 -0
- package/dist/open-file-WR2JHI4P.js +8 -0
- package/dist/open-file-WR2JHI4P.js.map +1 -0
- package/dist/primitives/index.js +28 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/react.d.ts +23 -0
- package/dist/react.js +20 -0
- package/dist/react.js.map +1 -0
- package/dist/server/index.js +457 -0
- package/dist/server/index.js.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +88 -0
- package/src/scripts/create-pin.ts +43 -0
- package/src/scripts/delete-pin.ts +16 -0
- package/src/scripts/get-pins.ts +36 -0
- package/src/scripts/list-sessions.ts +33 -0
- package/src/scripts/resolve-pin.ts +27 -0
- package/src/scripts/run.ts +8 -0
- package/src/scripts/update-pin.ts +32 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// @agent-native/pinpoint — List/filter annotations script
|
|
2
|
+
// MIT License
|
|
3
|
+
|
|
4
|
+
import { parseArgs } from "@agent-native/core/scripts";
|
|
5
|
+
|
|
6
|
+
import { FileStore } from "../storage/file-store.js";
|
|
7
|
+
import type { PinStatus } from "../types/index.js";
|
|
8
|
+
|
|
9
|
+
export default async function (args: string[]) {
|
|
10
|
+
const { pageUrl, status } = parseArgs(args) as {
|
|
11
|
+
pageUrl?: string;
|
|
12
|
+
status?: PinStatus;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const store = new FileStore();
|
|
16
|
+
const pins = await store.list({ pageUrl, status });
|
|
17
|
+
|
|
18
|
+
if (pins.length === 0) {
|
|
19
|
+
console.log("No annotations found.");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
console.log(`Found ${pins.length} annotation(s):\n`);
|
|
24
|
+
|
|
25
|
+
for (let i = 0; i < pins.length; i++) {
|
|
26
|
+
const pin = pins[i];
|
|
27
|
+
console.log(`${i + 1}. [${pin.status.state}] ${pin.element.selector}`);
|
|
28
|
+
console.log(` Comment: ${pin.comment}`);
|
|
29
|
+
if (pin.author) console.log(` Author: ${pin.author}`);
|
|
30
|
+
if (pin.framework?.sourceFile)
|
|
31
|
+
console.log(` Source: ${pin.framework.sourceFile}`);
|
|
32
|
+
console.log(` Page: ${pin.pageUrl}`);
|
|
33
|
+
console.log(` ID: ${pin.id}`);
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @agent-native/pinpoint — List annotation sessions by page URL
|
|
2
|
+
// MIT License
|
|
3
|
+
|
|
4
|
+
import { FileStore } from "../storage/file-store.js";
|
|
5
|
+
|
|
6
|
+
export default async function (_args: string[]) {
|
|
7
|
+
const store = new FileStore();
|
|
8
|
+
const pins = await store.list();
|
|
9
|
+
|
|
10
|
+
// Group by page URL
|
|
11
|
+
const sessions = new Map<string, { count: number; latest: string }>();
|
|
12
|
+
for (const pin of pins) {
|
|
13
|
+
const existing = sessions.get(pin.pageUrl);
|
|
14
|
+
if (!existing || pin.updatedAt > existing.latest) {
|
|
15
|
+
sessions.set(pin.pageUrl, {
|
|
16
|
+
count: (existing?.count ?? 0) + 1,
|
|
17
|
+
latest: pin.updatedAt,
|
|
18
|
+
});
|
|
19
|
+
} else {
|
|
20
|
+
existing.count++;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (sessions.size === 0) {
|
|
25
|
+
console.log("No annotation sessions found.");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
console.log(`${sessions.size} page(s) with annotations:\n`);
|
|
30
|
+
for (const [url, info] of sessions) {
|
|
31
|
+
console.log(` ${url} — ${info.count} pin(s), last updated ${info.latest}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// @agent-native/pinpoint — Resolve annotation script
|
|
2
|
+
// MIT License
|
|
3
|
+
|
|
4
|
+
import { parseArgs, fail } from "@agent-native/core/scripts";
|
|
5
|
+
|
|
6
|
+
import { FileStore } from "../storage/file-store.js";
|
|
7
|
+
|
|
8
|
+
export default async function (args: string[]) {
|
|
9
|
+
const { id, message } = parseArgs(args) as {
|
|
10
|
+
id?: string;
|
|
11
|
+
message?: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
if (!id) fail("--id is required");
|
|
15
|
+
|
|
16
|
+
const store = new FileStore();
|
|
17
|
+
await store.update(id!, {
|
|
18
|
+
status: {
|
|
19
|
+
state: "resolved",
|
|
20
|
+
changedAt: new Date().toISOString(),
|
|
21
|
+
changedBy: "agent",
|
|
22
|
+
},
|
|
23
|
+
...(message ? { comment: message } : {}),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
console.log(`Resolved annotation ${id}`);
|
|
27
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// @agent-native/pinpoint — Update annotation script
|
|
2
|
+
// MIT License
|
|
3
|
+
|
|
4
|
+
import { parseArgs, fail } from "@agent-native/core/scripts";
|
|
5
|
+
|
|
6
|
+
import { FileStore } from "../storage/file-store.js";
|
|
7
|
+
|
|
8
|
+
export default async function (args: string[]) {
|
|
9
|
+
const { id, comment, status } = parseArgs(args) as {
|
|
10
|
+
id?: string;
|
|
11
|
+
comment?: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
if (!id) fail("--id is required");
|
|
16
|
+
if (!comment && !status) fail("--comment or --status is required");
|
|
17
|
+
|
|
18
|
+
const store = new FileStore();
|
|
19
|
+
const patch: Record<string, any> = {};
|
|
20
|
+
|
|
21
|
+
if (comment) patch.comment = comment;
|
|
22
|
+
if (status) {
|
|
23
|
+
patch.status = {
|
|
24
|
+
state: status,
|
|
25
|
+
changedAt: new Date().toISOString(),
|
|
26
|
+
changedBy: "agent",
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
await store.update(id!, patch);
|
|
31
|
+
console.log(`Updated annotation ${id}`);
|
|
32
|
+
}
|