@abyss-project/tools 2.6.0 → 2.8.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 (80) hide show
  1. package/README.md +32 -32
  2. package/dist/api/extraction.api.d.ts +4 -2
  3. package/dist/api/extraction.api.js +13 -2
  4. package/dist/api/extraction.api.js.map +1 -1
  5. package/dist/api/index.d.ts +0 -1
  6. package/dist/api/index.js +0 -1
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/constants/index.d.ts +0 -1
  9. package/dist/constants/index.js +0 -1
  10. package/dist/constants/index.js.map +1 -1
  11. package/dist/index.d.ts +2 -13
  12. package/dist/index.js +2 -13
  13. package/dist/index.js.map +1 -1
  14. package/dist/types/enum/content-share.enum.d.ts +0 -1
  15. package/dist/types/enum/content-share.enum.js +0 -1
  16. package/dist/types/enum/content-share.enum.js.map +1 -1
  17. package/dist/types/enum/extraction-step-status.enum.d.ts +6 -0
  18. package/dist/types/enum/extraction-step-status.enum.js +11 -0
  19. package/dist/types/enum/extraction-step-status.enum.js.map +1 -0
  20. package/dist/types/enum/index.d.ts +1 -0
  21. package/dist/types/enum/index.js +1 -0
  22. package/dist/types/enum/index.js.map +1 -1
  23. package/dist/types/interface/api/requests/atlas-document.request.d.ts +1 -0
  24. package/dist/types/interface/api/requests/board-card-document.request.d.ts +1 -0
  25. package/dist/types/interface/api/requests/extraction.request.d.ts +4 -0
  26. package/dist/types/interface/api/requests/index.d.ts +0 -1
  27. package/dist/types/interface/api/requests/index.js +0 -1
  28. package/dist/types/interface/api/requests/index.js.map +1 -1
  29. package/dist/types/interface/api/responses/abyss.admin.response.d.ts +0 -1
  30. package/dist/types/interface/api/responses/atlas-document.response.d.ts +2 -4
  31. package/dist/types/interface/api/responses/board-card-document.response.d.ts +2 -4
  32. package/dist/types/interface/api/responses/extraction.response.d.ts +15 -0
  33. package/dist/types/interface/api/responses/index.d.ts +0 -1
  34. package/dist/types/interface/api/responses/index.js +0 -1
  35. package/dist/types/interface/api/responses/index.js.map +1 -1
  36. package/dist/types/interface/api/responses/metrics.response.d.ts +0 -1
  37. package/dist/types/interface/api/responses/transfer.response.d.ts +0 -4
  38. package/dist/types/interface/models/extraction-plan.dto.d.ts +30 -1
  39. package/dist/types/interface/models/extraction-plan.dto.js +3 -1
  40. package/dist/types/interface/models/extraction-plan.dto.js.map +1 -1
  41. package/dist/types/interface/models/extraction.dto.d.ts +2 -1
  42. package/dist/types/interface/models/extraction.dto.js.map +1 -1
  43. package/dist/types/interface/models/index.d.ts +1 -1
  44. package/dist/types/interface/models/index.js +1 -1
  45. package/dist/types/interface/models/index.js.map +1 -1
  46. package/dist/types/interface/models/project.dto.d.ts +0 -2
  47. package/dist/types/interface/models/upload-session.dto.d.ts +8 -0
  48. package/dist/types/interface/models/upload-session.dto.js +3 -0
  49. package/dist/types/interface/models/upload-session.dto.js.map +1 -0
  50. package/dist/types/interface/models/user.dto.d.ts +0 -2
  51. package/package.json +1 -1
  52. package/src/api/extraction.api.ts +35 -0
  53. package/src/api/index.ts +0 -3
  54. package/src/constants/index.ts +0 -1
  55. package/src/index.ts +5 -25
  56. package/src/types/enum/content-share.enum.ts +0 -1
  57. package/src/types/enum/extraction-step-status.enum.ts +7 -0
  58. package/src/types/enum/index.ts +1 -0
  59. package/src/types/interface/api/requests/atlas-document.request.ts +5 -0
  60. package/src/types/interface/api/requests/board-card-document.request.ts +5 -0
  61. package/src/types/interface/api/requests/extraction.request.ts +6 -0
  62. package/src/types/interface/api/requests/index.ts +0 -1
  63. package/src/types/interface/api/responses/abyss.admin.response.ts +0 -1
  64. package/src/types/interface/api/responses/atlas-document.response.ts +5 -4
  65. package/src/types/interface/api/responses/board-card-document.response.ts +5 -4
  66. package/src/types/interface/api/responses/extraction.response.ts +17 -0
  67. package/src/types/interface/api/responses/index.ts +0 -1
  68. package/src/types/interface/api/responses/metrics.response.ts +0 -1
  69. package/src/types/interface/api/responses/transfer.response.ts +0 -2
  70. package/src/types/interface/models/extraction-plan.dto.ts +43 -4
  71. package/src/types/interface/models/extraction.dto.ts +11 -1
  72. package/src/types/interface/models/index.ts +1 -1
  73. package/src/types/interface/models/project.dto.ts +0 -2
  74. package/src/types/interface/models/upload-session.dto.ts +24 -0
  75. package/src/types/interface/models/user.dto.ts +0 -2
  76. package/src/api/memo.api.ts +0 -97
  77. package/src/constants/memo.constants.ts +0 -3
  78. package/src/types/interface/api/requests/memo.request.ts +0 -49
  79. package/src/types/interface/api/responses/memo.response.ts +0 -32
  80. package/src/types/interface/models/memo.dto.ts +0 -23
@@ -8,9 +8,10 @@
8
8
  import { ProviderKind, CostTier } from '../../enum/provider-kind.enum';
9
9
  import { InterpreterKind } from '../../enum/interpreter-kind.enum';
10
10
  import { CombineStrategy } from '../../enum/combine-strategy.enum';
11
+ import { ExtractionStepStatus } from '../../enum/extraction-step-status.enum';
11
12
 
12
13
  // Re-export for consumers that import from this barrel.
13
- export { ProviderKind, CostTier, InterpreterKind, CombineStrategy };
14
+ export { ProviderKind, CostTier, InterpreterKind, CombineStrategy, ExtractionStepStatus };
14
15
 
15
16
  // ─── Plan building blocks ──────────────────────────────────────────────────
16
17
 
@@ -180,15 +181,53 @@ export interface IExecutionManifest {
180
181
  createdAt: string;
181
182
  }
182
183
 
184
+ // ─── Execution trace (P1) ──────────────────────────────────────────────────
185
+
186
+ /** Per-IO metadata in the persisted trace skeleton. The full payload is fetched lazily. */
187
+ export interface IStepIo {
188
+ slot: 'providerOutput' | 'interpreterOutput';
189
+ bytes: number;
190
+ sha256: string;
191
+ preview: string;
192
+ status: 'pending' | 'ready' | 'skipped';
193
+ applicationFileId: string | null;
194
+ }
195
+
196
+ /** One executed / gate-skipped / failed pass, with timing, status and IO refs. */
197
+ export interface IStepTrace {
198
+ index: number;
199
+ providerId: string;
200
+ providerVersion: string;
201
+ interpreterId: string;
202
+ interpreterVersion: string;
203
+ documentType: string | null;
204
+ status: ExtractionStepStatus;
205
+ startedAtMs: number;
206
+ durationMs: number;
207
+ ocrPageCount: number;
208
+ fieldsContributed: number;
209
+ errorMessage: string | null;
210
+ io: IStepIo[];
211
+ }
212
+
213
+ /**
214
+ * Per-pass execution trace skeleton persisted in extractions.executionTrace and
215
+ * surfaced by GET /extractions/:id. Full IO payloads are fetched lazily via
216
+ * sdk.extract.extractions.stepIo.
217
+ */
218
+ export interface IExecutionTrace {
219
+ steps: IStepTrace[];
220
+ totalDurationMs: number;
221
+ artifactStatus: 'pending' | 'ready';
222
+ }
223
+
183
224
  // ─── Plan presets ──────────────────────────────────────────────────────────
184
225
 
185
226
  /** A saved extraction plan preset (DB row + virtual system presets). */
186
227
  export interface IExtractionPlanPreset {
187
228
  id: string;
188
229
  name: string;
189
- scope:
190
- | { kind: 'user'; userId: string }
191
- | { kind: 'org'; organizationId: string };
230
+ scope: { kind: 'user'; userId: string } | { kind: 'org'; organizationId: string };
192
231
  plan: IExtractionPlan;
193
232
  isDefault: boolean;
194
233
  system: boolean;
@@ -7,7 +7,12 @@ import { ExtractionWarningCode } from '../../../types/enum/extraction-warning.en
7
7
  import { ExtractionFeedbackIssueType } from '../../../types/enum/extraction-feedback-issue-type.enum';
8
8
  import { DocumentType } from '../../../types/enum/document-type.enum';
9
9
  import { FileScanStatus } from '../../enum/file-scan-status.enum';
10
- import type { IFieldValue, IExecutionManifest, IGlobalConfidence } from './extraction-plan.dto';
10
+ import type {
11
+ IFieldValue,
12
+ IExecutionManifest,
13
+ IGlobalConfidence,
14
+ IExecutionTrace,
15
+ } from './extraction-plan.dto';
11
16
 
12
17
  // Re-export so consumers can import ExtractionFeedbackIssueType from the DTO barrel.
13
18
  export { ExtractionFeedbackIssueType };
@@ -163,6 +168,11 @@ export interface IExtraction {
163
168
  * Surfaced where available; optional/absent otherwise. ADDITIVE, optional.
164
169
  */
165
170
  globalConfidence?: IGlobalConfidence | null;
171
+ /**
172
+ * Per-pass execution trace skeleton (timing/status/impl + lazy IO refs) — P1.
173
+ * Present on plan-path rows; absent on legacy paths. ADDITIVE, optional.
174
+ */
175
+ executionTrace?: IExecutionTrace | null;
166
176
  createdAt: string;
167
177
  }
168
178
 
@@ -7,7 +7,6 @@ export * from './atlas-group.dto';
7
7
  export * from './atlas-page.dto';
8
8
  export * from './atlas-page-content.dto';
9
9
  export * from './draw.dto';
10
- export * from './memo.dto';
11
10
  export * from './retrospective.dto';
12
11
  export * from './retrospective-section.dto';
13
12
  export * from './retrospective-card.dto';
@@ -35,3 +34,4 @@ export * from './extraction-spatial-template.dto';
35
34
  export * from './probe-scan.dto';
36
35
  export * from './probe-webhook.dto';
37
36
  export * from './probe-webhook-delivery.dto';
37
+ export * from './upload-session.dto';
@@ -1,6 +1,5 @@
1
1
  import { IAtlas } from './atlas.dto';
2
2
  import { IDraw } from './draw.dto';
3
- import { IMemo } from './memo.dto';
4
3
  import { IOrganization } from './organization.dto';
5
4
  import { IRetrospective } from './retrospective.dto';
6
5
  import { IShortLink } from './short-link.dto';
@@ -20,6 +19,5 @@ export interface IProject {
20
19
  draws?: IDraw[];
21
20
  retrospectives?: IRetrospective[];
22
21
  atlases?: IAtlas[];
23
- memos?: IMemo[];
24
22
  shortLinks?: IShortLink[];
25
23
  }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * SP3 — transparent multipart upload.
3
+ *
4
+ * Mirrors @abyss-project/storage's `UploadSession` (the return type of
5
+ * `initiateUpload`) as a LOCAL type instead of importing storage's own type,
6
+ * decoupling abyss-tools's public API contract from storage's package
7
+ * boundary — a front consumer of @abyss-project/tools should not need to
8
+ * also depend on @abyss-project/storage just to type a presign response
9
+ * (same mirroring rationale as abyss-memories's `IUploadSession`, abyss-form's
10
+ * `IUploadSession` and abyss-cloud's `IUploadSession`).
11
+ *
12
+ * `kind: 'single'` — size at or below storage's single-shot threshold:
13
+ * `token` is the one-shot pre-signed upload URL to PUT the whole file to.
14
+ * `kind: 'multipart'` — above the threshold: `multipartToken` identifies the
15
+ * multipart session and `partSizeOctet` is the fixed part size the front must
16
+ * chunk the file into (see @abyss-project/storage's `uploadWithSession`).
17
+ *
18
+ * Shared by every presign response DTO that proxies a *UploadUrl service
19
+ * method's `UploadSession` result as-is: board-card-document upload and
20
+ * atlas-document upload.
21
+ */
22
+ export type IUploadSession =
23
+ | { kind: 'single'; token: string }
24
+ | { kind: 'multipart'; multipartToken: string; partSizeOctet: number };
@@ -2,7 +2,6 @@ import { IAtlas } from './atlas.dto';
2
2
  import { IBoard } from './board.dto';
3
3
  import { IBoardCardComment } from './board-card-comment.dto';
4
4
  import { IDraw } from './draw.dto';
5
- import { IMemo } from './memo.dto';
6
5
  import { IProject } from './project.dto';
7
6
  import { IRetrospective } from './retrospective.dto';
8
7
  import { IShortLink } from './short-link.dto';
@@ -24,7 +23,6 @@ export interface IUser {
24
23
  draws?: IDraw[];
25
24
  retrospectives?: IRetrospective[];
26
25
  atlases?: IAtlas[];
27
- memos?: IMemo[];
28
26
  shortLinks?: IShortLink[];
29
27
  boardCardComments?: IBoardCardComment[];
30
28
  }
@@ -1,97 +0,0 @@
1
- import { AbyssToolsCore } from '..';
2
- import {
3
- ICreateMemoBody,
4
- ICreateMemoResponse,
5
- ICreateForOrganizationMemoParams,
6
- IDeleteMemoParams,
7
- IDeleteMemoResponse,
8
- IGetMemoParams,
9
- IGetMemoResponse,
10
- IPaginateMemoQuery,
11
- IPaginateMemoResponse,
12
- IPaginateProjectMemoParams,
13
- IPaginateOrganizationMemoParams,
14
- IUpdateMemoBody,
15
- IUpdateMemoParams,
16
- IUpdateMemoResponse,
17
- ITransferContentBody,
18
- ITransferMemoResponse,
19
- ICountOrganizationResponse,
20
- } from '../types';
21
-
22
- export const paginateMemo = async (query: IPaginateMemoQuery): Promise<IPaginateMemoResponse> => {
23
- return (await AbyssToolsCore.axios.get<IPaginateMemoResponse>(`memo/paginate`, { params: query }))
24
- .data;
25
- };
26
-
27
- export const paginateProjectMemo = async (
28
- params: IPaginateProjectMemoParams,
29
- query: IPaginateMemoQuery,
30
- ): Promise<IPaginateMemoResponse> => {
31
- return (
32
- await AbyssToolsCore.axios.get<IPaginateMemoResponse>(`project/${params.projectId}/memo/paginate`, {
33
- params: query,
34
- })
35
- ).data;
36
- };
37
-
38
- export const getMemo = async (params: IGetMemoParams): Promise<IGetMemoResponse> => {
39
- return (await AbyssToolsCore.axios.get<IGetMemoResponse>(`memo/${params.memoId}`)).data;
40
- };
41
-
42
- export const deleteMemo = async (params: IDeleteMemoParams): Promise<IDeleteMemoResponse> => {
43
- return (await AbyssToolsCore.axios.delete<IDeleteMemoResponse>(`memo/${params.memoId}`)).data;
44
- };
45
-
46
- export const updateMemo = async (
47
- params: IUpdateMemoParams,
48
- body: IUpdateMemoBody,
49
- ): Promise<IUpdateMemoResponse> => {
50
- return (await AbyssToolsCore.axios.put<IUpdateMemoResponse>(`memo/${params.memoId}`, body)).data;
51
- };
52
-
53
- export const createMemo = async (body: ICreateMemoBody): Promise<ICreateMemoResponse> => {
54
- return (await AbyssToolsCore.axios.post<ICreateMemoResponse>(`memo`, body)).data;
55
- };
56
-
57
- export const paginateOrganizationMemo = async (
58
- params: IPaginateOrganizationMemoParams,
59
- query: IPaginateMemoQuery,
60
- ): Promise<IPaginateMemoResponse> => {
61
- return (
62
- await AbyssToolsCore.axios.get<IPaginateMemoResponse>(
63
- `organization/${params.organizationId}/memo/paginate`,
64
- { params: query },
65
- )
66
- ).data;
67
- };
68
-
69
- export const createForOrganizationMemo = async (
70
- params: ICreateForOrganizationMemoParams,
71
- body: ICreateMemoBody,
72
- ): Promise<ICreateMemoResponse> => {
73
- return (await AbyssToolsCore.axios.post<ICreateMemoResponse>(`memo/organization/${params.organizationId}`, body))
74
- .data;
75
- };
76
-
77
- export const transferMemo = async (
78
- params: { memoId: string },
79
- body: ITransferContentBody,
80
- ): Promise<ITransferMemoResponse> => {
81
- return (
82
- await AbyssToolsCore.axios.post<ITransferMemoResponse>(
83
- `memo/${params.memoId}/transfer`,
84
- body,
85
- )
86
- ).data;
87
- };
88
-
89
- export const countOrganizationMemo = async (
90
- params: { organizationId: string },
91
- ): Promise<ICountOrganizationResponse> => {
92
- return (
93
- await AbyssToolsCore.axios.get<ICountOrganizationResponse>(
94
- `memo/organization/${params.organizationId}/count`,
95
- )
96
- ).data;
97
- };
@@ -1,3 +0,0 @@
1
- export const MIN_MEMO_TITLE_LENGTH = 3;
2
- export const MAX_MEMO_TITLE_LENGTH = 100;
3
- export const MAX_MEMO_CONTENT_LENGTH = 10000;
@@ -1,49 +0,0 @@
1
- import { ContentShareScope } from '../../../enum';
2
- import { QueryPaginate } from '../type-message/base-paginate';
3
-
4
- export type ICreateForOrganizationMemoParams = {
5
- organizationId: string;
6
- };
7
- export type ICreateMemoBody = {
8
- title: string;
9
- content: string;
10
- };
11
-
12
- export type IUpdateMemoParams = {
13
- memoId: string;
14
- };
15
- export type IUpdateMemoBody = {
16
- title?: string;
17
- content?: string;
18
- archived?: boolean;
19
- };
20
-
21
- export type IGetMemoParams = {
22
- memoId: string;
23
- };
24
-
25
- export type IDeleteMemoParams = {
26
- memoId: string;
27
- };
28
-
29
- export type IPaginateMemoQuery = {
30
- title?: string;
31
- archived?: boolean;
32
- scope?: ContentShareScope;
33
- teamId?: string;
34
- projectId?: string;
35
- adminView?: boolean;
36
- sharedWithMe?: boolean;
37
- } & QueryPaginate;
38
-
39
- export type IPaginateProjectMemoParams = {
40
- projectId: string;
41
- };
42
-
43
- export type IPaginateOrganizationMemoParams = {
44
- organizationId: string;
45
- };
46
-
47
- export type ICountOrganizationMemoParams = {
48
- organizationId: string;
49
- };
@@ -1,32 +0,0 @@
1
- import { BasePaginate } from '../type-message/base-paginate';
2
- import { IResponse } from '../type-message/response';
3
- import { IMemo } from '../../models/memo.dto';
4
- import { SharePermission } from '../../../enum/content-share.enum';
5
-
6
- export interface IGetMemoData {
7
- memo: IMemo;
8
- sharePermission?: SharePermission | null;
9
- }
10
- export type IGetMemoResponse = IResponse<IGetMemoData>;
11
-
12
- export interface IUpdateMemoData {
13
- memo: IMemo;
14
- }
15
- export type IUpdateMemoResponse = IResponse<IUpdateMemoData>;
16
-
17
- export interface ICreateMemoData {
18
- memo: IMemo;
19
- }
20
- export type ICreateMemoResponse = IResponse<ICreateMemoData>;
21
-
22
- export interface IDeleteMemoData {}
23
- export type IDeleteMemoResponse = IResponse<IDeleteMemoData>;
24
-
25
- export type IPaginateMemoResponse = IResponse<BasePaginate<IMemo>>;
26
-
27
- export interface ICountOrganizationMemoData {
28
- total: number;
29
- orphan?: number;
30
- unshared?: number;
31
- }
32
- export type ICountOrganizationMemoResponse = IResponse<ICountOrganizationMemoData>;
@@ -1,23 +0,0 @@
1
- import { IOrganization } from './organization.dto';
2
- import { IProject } from './project.dto';
3
- import { IEntityTag } from './tag.dto';
4
- import { IUser } from './user.dto';
5
-
6
- export interface IMemo {
7
- id: string;
8
- title: string;
9
- content: string;
10
- userId: string | null;
11
- projectId: string | null;
12
- organizationId: string | null;
13
- createdByUserId: string | null;
14
- archivedAt?: Date | null;
15
- updatedAt?: Date;
16
- createdAt?: Date;
17
-
18
- // Association
19
- user?: IUser | null;
20
- project?: IProject | null;
21
- organization?: IOrganization | null;
22
- entityTags?: IEntityTag[];
23
- }