@agwab/pi-workflow 0.1.1 → 0.1.2

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 (51) hide show
  1. package/README.md +14 -3
  2. package/agents/researcher.md +17 -7
  3. package/dist/artifact-graph-runtime.js +1 -0
  4. package/dist/compiler.js +2 -2
  5. package/dist/dynamic-generated-task-runtime.js +4 -3
  6. package/dist/dynamic-runtime-bundle.js +3 -2
  7. package/dist/extension.js +40 -1
  8. package/dist/subagent-backend.js +82 -27
  9. package/dist/tool-metadata.d.ts +1 -0
  10. package/dist/tool-metadata.js +13 -1
  11. package/dist/workflow-artifact-extension.js +3 -2
  12. package/dist/workflow-artifact-tool.js +84 -4
  13. package/dist/workflow-web-source-extension.d.ts +43 -0
  14. package/dist/workflow-web-source-extension.js +1194 -0
  15. package/dist/workflow-web-source.d.ts +171 -0
  16. package/dist/workflow-web-source.js +897 -0
  17. package/docs/usage.md +32 -18
  18. package/node_modules/@agwab/pi-subagent/package.json +1 -1
  19. package/node_modules/@agwab/pi-subagent/src/api.ts +245 -132
  20. package/node_modules/@agwab/pi-subagent/src/artifacts/result.ts +243 -163
  21. package/node_modules/@agwab/pi-subagent/src/core/constants.ts +117 -90
  22. package/node_modules/@agwab/pi-subagent/src/core/validation.ts +728 -475
  23. package/node_modules/@agwab/pi-subagent/src/orchestrate/run.ts +305 -209
  24. package/node_modules/@agwab/pi-subagent/src/runners/headless-model.ts +750 -439
  25. package/node_modules/@agwab/pi-subagent/src/runners/tmux.ts +422 -268
  26. package/package.json +2 -2
  27. package/skills/workflow-guide/scaffolds/object-tool-fallback/schemas/fetch-control.schema.json +1 -1
  28. package/skills/workflow-guide/scaffolds/object-tool-fallback/spec.json +4 -3
  29. package/src/artifact-graph-runtime.ts +1 -0
  30. package/src/compiler.ts +2 -1
  31. package/src/dynamic-generated-task-runtime.ts +4 -2
  32. package/src/dynamic-runtime-bundle.ts +3 -2
  33. package/src/extension.ts +46 -1
  34. package/src/subagent-backend.ts +121 -37
  35. package/src/tool-metadata.ts +22 -1
  36. package/src/workflow-artifact-extension.ts +3 -2
  37. package/src/workflow-artifact-tool.ts +96 -4
  38. package/src/workflow-web-source-extension.ts +1411 -0
  39. package/src/workflow-web-source.ts +1171 -0
  40. package/workflows/README.md +1 -1
  41. package/workflows/deep-research/helpers/claim-evidence-gate.mjs +474 -40
  42. package/workflows/deep-research/helpers/final-audit-packet.mjs +219 -0
  43. package/workflows/deep-research/helpers/normalize-input-packet.mjs +436 -0
  44. package/workflows/deep-research/helpers/render-executive.mjs +571 -198
  45. package/workflows/deep-research/schemas/deep-research-executive-render-control.schema.json +35 -8
  46. package/workflows/deep-research/schemas/deep-research-normalize-claims-control.schema.json +45 -4
  47. package/workflows/deep-research/schemas/deep-research-verify-claims-control.schema.json +0 -2
  48. package/workflows/deep-research/spec.json +36 -21
  49. package/workflows/deep-review/helpers/render-review-report.mjs +502 -0
  50. package/workflows/deep-review/schemas/deep-review-render-control.schema.json +50 -0
  51. package/workflows/deep-review/spec.json +22 -1
@@ -0,0 +1,171 @@
1
+ export declare const WORKFLOW_WEB_SOURCE_CACHE_SCHEMA: "workflow-web-source-cache-v1";
2
+ export declare const WORKFLOW_WEB_SOURCE_INDEX_SCHEMA: "workflow-web-source-index-v1";
3
+ export declare const WORKFLOW_WEB_SOURCE_INDEX_EVENT_SCHEMA: "workflow-web-source-index-event-v1";
4
+ export declare const WORKFLOW_WEB_SOURCE_EVENT_SCHEMA: "workflow-web-source-event-v1";
5
+ export declare const WORKFLOW_WEB_SOURCE_TOOLS: readonly ["workflow_web_search", "workflow_web_fetch_source", "workflow_web_source_read"];
6
+ export type WorkflowWebSourceTool = (typeof WORKFLOW_WEB_SOURCE_TOOLS)[number];
7
+ export interface WorkflowWebSourcePolicy {
8
+ previewChars: number;
9
+ duplicatePreviewChars: number;
10
+ sourceReadMaxChars: number;
11
+ searchSnippetChars: number;
12
+ perTaskVisibleCharBudget: number;
13
+ }
14
+ export interface WorkflowWebSecurityPolicy {
15
+ allowPrivateHosts: boolean;
16
+ cacheRawProviderPayloads: boolean;
17
+ }
18
+ export interface WorkflowWebSourceCacheConfig {
19
+ runId: string;
20
+ taskId: string;
21
+ cacheDir: string;
22
+ }
23
+ export interface WorkflowWebSource {
24
+ schema: typeof WORKFLOW_WEB_SOURCE_CACHE_SCHEMA;
25
+ sourceRef: string;
26
+ createdAt: string;
27
+ runId: string;
28
+ taskId: string;
29
+ url: string;
30
+ redactedUrl: string;
31
+ urlKey?: string;
32
+ domain: string;
33
+ title?: string;
34
+ provider?: string;
35
+ contentHash: string;
36
+ text: string;
37
+ textChars: number;
38
+ extractionLossy?: boolean;
39
+ metadata?: Record<string, string | number | boolean | null>;
40
+ }
41
+ export interface WorkflowWebSourceIndexEntry {
42
+ sourceRef: string;
43
+ createdAt: string;
44
+ url: string;
45
+ redactedUrl: string;
46
+ urlKey?: string;
47
+ domain: string;
48
+ title?: string;
49
+ contentHash: string;
50
+ textChars: number;
51
+ provider?: string;
52
+ }
53
+ export interface WorkflowWebSourceIndex {
54
+ schema: typeof WORKFLOW_WEB_SOURCE_INDEX_SCHEMA;
55
+ updatedAt: string;
56
+ runId: string;
57
+ sources: WorkflowWebSourceIndexEntry[];
58
+ }
59
+ export interface WorkflowWebVisibleBudget {
60
+ limit: number;
61
+ used: number;
62
+ }
63
+ export interface WorkflowWebSourceReadRequest {
64
+ query?: string;
65
+ claim?: string;
66
+ terms?: string[];
67
+ maxChars?: number;
68
+ }
69
+ export interface WorkflowWebSourceReadResult {
70
+ status: "matched" | "not_found";
71
+ matchType?: "exact" | "normalized" | "terms";
72
+ quote?: string;
73
+ startOffset?: number;
74
+ endOffset?: number;
75
+ visibleChars: number;
76
+ matchedTerms?: string[];
77
+ missingTerms?: string[];
78
+ coverageRatio?: number;
79
+ candidateOnly?: boolean;
80
+ }
81
+ export interface WorkflowWebSourceCard {
82
+ sourceRef: string;
83
+ url: string;
84
+ domain: string;
85
+ title?: string;
86
+ preview: string;
87
+ textChars: number;
88
+ fullContentCached: boolean;
89
+ duplicate: boolean;
90
+ budget: {
91
+ limit: number;
92
+ used: number;
93
+ remaining: number;
94
+ truncated: boolean;
95
+ };
96
+ next: string;
97
+ }
98
+ export interface WorkflowWebSearchCandidate {
99
+ url?: string;
100
+ title?: string;
101
+ snippet: string;
102
+ domain?: string;
103
+ }
104
+ export declare const DEFAULT_WORKFLOW_WEB_SOURCE_POLICY: WorkflowWebSourcePolicy;
105
+ export declare const DEFAULT_WORKFLOW_WEB_SECURITY_POLICY: WorkflowWebSecurityPolicy;
106
+ export declare function normalizeWorkflowWebSourcePolicy(policy: Partial<WorkflowWebSourcePolicy> | undefined): WorkflowWebSourcePolicy;
107
+ export declare function normalizeWorkflowWebSecurityPolicy(policy: Partial<WorkflowWebSecurityPolicy> | undefined): WorkflowWebSecurityPolicy;
108
+ export declare function isWorkflowWebSourceTool(tool: string): tool is WorkflowWebSourceTool;
109
+ export declare function createWorkflowWebVisibleBudget(limit: number): WorkflowWebVisibleBudget;
110
+ export declare function consumeWorkflowWebVisibleBudget(budget: WorkflowWebVisibleBudget, text: string, maxChars: number): {
111
+ text: string;
112
+ truncated: boolean;
113
+ remaining: number;
114
+ used: number;
115
+ };
116
+ export declare function validateWorkflowWebUrl(url: string, security?: WorkflowWebSecurityPolicy): {
117
+ ok: true;
118
+ normalizedUrl: string;
119
+ domain: string;
120
+ } | {
121
+ ok: false;
122
+ reason: string;
123
+ };
124
+ export declare function sanitizeUrlForModel(url: string): string;
125
+ export declare function sourceRefFor(url: string, text: string): string;
126
+ export declare function sourceUrlCacheKey(url: string): string;
127
+ export declare function createWorkflowWebSource(options: {
128
+ config: WorkflowWebSourceCacheConfig;
129
+ url: string;
130
+ text: string;
131
+ title?: string;
132
+ provider?: string;
133
+ extractionLossy?: boolean;
134
+ metadata?: WorkflowWebSource["metadata"];
135
+ }): WorkflowWebSource;
136
+ export declare function writeWorkflowWebSource(config: WorkflowWebSourceCacheConfig, source: WorkflowWebSource): Promise<void>;
137
+ export declare function readWorkflowWebSource(config: WorkflowWebSourceCacheConfig, sourceRef: string): Promise<WorkflowWebSource | undefined>;
138
+ export declare function readWorkflowWebSourceIndex(config: WorkflowWebSourceCacheConfig): Promise<WorkflowWebSourceIndex>;
139
+ export declare function findWorkflowWebSourceByUrl(config: WorkflowWebSourceCacheConfig, url: string): Promise<WorkflowWebSource | undefined>;
140
+ export declare function recordWorkflowWebSourceEvent(config: WorkflowWebSourceCacheConfig, event: string, data?: Record<string, unknown>): Promise<void>;
141
+ export declare function buildWorkflowWebSourceCard(options: {
142
+ source: WorkflowWebSource;
143
+ policy: WorkflowWebSourcePolicy;
144
+ budget: WorkflowWebVisibleBudget;
145
+ duplicate?: boolean;
146
+ }): WorkflowWebSourceCard;
147
+ export declare function readWorkflowWebSourceSnippet(options: {
148
+ source: WorkflowWebSource;
149
+ query?: string;
150
+ claim?: string;
151
+ terms?: string[];
152
+ maxChars: number;
153
+ budget: WorkflowWebVisibleBudget;
154
+ }): WorkflowWebSourceReadResult;
155
+ export declare function readWorkflowWebSourceSnippets(options: {
156
+ source: WorkflowWebSource;
157
+ requests: WorkflowWebSourceReadRequest[];
158
+ maxChars: number;
159
+ budget: WorkflowWebVisibleBudget;
160
+ }): WorkflowWebSourceReadResult[];
161
+ export declare function extractTextFromToolResult(result: unknown): string;
162
+ export declare function extractTitleFromToolResult(result: unknown): string | undefined;
163
+ export declare function extractSearchCandidates(result: unknown, policy?: WorkflowWebSourcePolicy): WorkflowWebSearchCandidate[];
164
+ export declare function toolResultFromJson(value: unknown): {
165
+ content: Array<{
166
+ type: "text";
167
+ text: string;
168
+ }>;
169
+ details: Record<string, unknown>;
170
+ };
171
+ export declare function errorToolResult(code: string, message: string, extra?: Record<string, unknown>): ReturnType<typeof toolResultFromJson>;