@nestos/kanban 0.0.0-stage → 0.5.1
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/README.md +121 -2
- package/dist/activity-C6xDM-cg.d.cts +232 -0
- package/dist/activity-Dw8DOw0L.d.ts +232 -0
- package/dist/activity.cjs +288 -0
- package/dist/activity.cjs.map +1 -0
- package/dist/activity.d.cts +34 -0
- package/dist/activity.d.ts +34 -0
- package/dist/activity.js +288 -0
- package/dist/activity.js.map +1 -0
- package/dist/chunk-2YFPV5GF.cjs +16 -0
- package/dist/chunk-2YFPV5GF.cjs.map +1 -0
- package/dist/chunk-4KF7KUAI.cjs +221 -0
- package/dist/chunk-4KF7KUAI.cjs.map +1 -0
- package/dist/chunk-4XF6LQSU.cjs +9 -0
- package/dist/chunk-4XF6LQSU.cjs.map +1 -0
- package/dist/chunk-5DLZWW5Y.js +148 -0
- package/dist/chunk-5DLZWW5Y.js.map +1 -0
- package/dist/chunk-5XKOCKY2.js +58 -0
- package/dist/chunk-5XKOCKY2.js.map +1 -0
- package/dist/chunk-6MN3H3YF.cjs +183 -0
- package/dist/chunk-6MN3H3YF.cjs.map +1 -0
- package/dist/chunk-ATUFFNLV.js +221 -0
- package/dist/chunk-ATUFFNLV.js.map +1 -0
- package/dist/chunk-DFTOTBGF.js +439 -0
- package/dist/chunk-DFTOTBGF.js.map +1 -0
- package/dist/chunk-G6FCDLDF.js +16 -0
- package/dist/chunk-G6FCDLDF.js.map +1 -0
- package/dist/chunk-IUI5CI2S.cjs +439 -0
- package/dist/chunk-IUI5CI2S.cjs.map +1 -0
- package/dist/chunk-KYNYPKKH.cjs +71 -0
- package/dist/chunk-KYNYPKKH.cjs.map +1 -0
- package/dist/chunk-L44TM4EE.cjs +1498 -0
- package/dist/chunk-L44TM4EE.cjs.map +1 -0
- package/dist/chunk-LSE6JG5I.cjs +20 -0
- package/dist/chunk-LSE6JG5I.cjs.map +1 -0
- package/dist/chunk-O4OGAAV4.js +71 -0
- package/dist/chunk-O4OGAAV4.js.map +1 -0
- package/dist/chunk-OHQTKGQN.js +1498 -0
- package/dist/chunk-OHQTKGQN.js.map +1 -0
- package/dist/chunk-PSKQAFDF.cjs +58 -0
- package/dist/chunk-PSKQAFDF.cjs.map +1 -0
- package/dist/chunk-QTMTBEBA.js +20 -0
- package/dist/chunk-QTMTBEBA.js.map +1 -0
- package/dist/chunk-RQP77ZTY.js +9 -0
- package/dist/chunk-RQP77ZTY.js.map +1 -0
- package/dist/chunk-T7P5EIC4.cjs +148 -0
- package/dist/chunk-T7P5EIC4.cjs.map +1 -0
- package/dist/chunk-TB2RZGDV.js +183 -0
- package/dist/chunk-TB2RZGDV.js.map +1 -0
- package/dist/content-CAIp1njn.d.cts +35 -0
- package/dist/content-CGMJdyH_.d.ts +35 -0
- package/dist/contracts/index.cjs +21 -0
- package/dist/contracts/index.cjs.map +1 -0
- package/dist/contracts/index.d.cts +4 -0
- package/dist/contracts/index.d.ts +4 -0
- package/dist/contracts/index.js +21 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/discovery-DxpirOz3.d.cts +61 -0
- package/dist/discovery-gSqWpuRm.d.ts +61 -0
- package/dist/discovery.cjs +379 -0
- package/dist/discovery.cjs.map +1 -0
- package/dist/discovery.d.cts +22 -0
- package/dist/discovery.d.ts +22 -0
- package/dist/discovery.js +379 -0
- package/dist/discovery.js.map +1 -0
- package/dist/execution.cjs +368 -0
- package/dist/execution.cjs.map +1 -0
- package/dist/execution.d.cts +89 -0
- package/dist/execution.d.ts +89 -0
- package/dist/execution.js +368 -0
- package/dist/execution.js.map +1 -0
- package/dist/index.cjs +76 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +61 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/module-BbvwdCDF.d.cts +11 -0
- package/dist/module-CWNK2BMj.d.ts +11 -0
- package/dist/planning-CcFZYdIL.d.cts +844 -0
- package/dist/planning-CcFZYdIL.d.ts +844 -0
- package/dist/ports-Bn6ro2FB.d.ts +142 -0
- package/dist/ports-CaL6geqR.d.cts +142 -0
- package/dist/storage.cjs +289 -0
- package/dist/storage.cjs.map +1 -0
- package/dist/storage.d.cts +71 -0
- package/dist/storage.d.ts +71 -0
- package/dist/storage.js +289 -0
- package/dist/storage.js.map +1 -0
- package/dist/store-Ct0gOAAg.d.ts +28 -0
- package/dist/store-q63eSMoT.d.cts +28 -0
- package/dist/ui/index.cjs +1961 -0
- package/dist/ui/index.cjs.map +1 -0
- package/dist/ui/index.d.cts +209 -0
- package/dist/ui/index.d.ts +209 -0
- package/dist/ui/index.js +1961 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/kanban.css +194 -0
- package/package.json +113 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/li/share/prj/x1/release/local-libraries/work/1ca933a0-6fe7-4e9c-b13b-76d7f318e0fb/source/libraries/kanban/dist/chunk-KYNYPKKH.cjs","../src/contracts/task-projection.ts"],"names":[],"mappings":"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","file":"/home/li/share/prj/x1/release/local-libraries/work/1ca933a0-6fe7-4e9c-b13b-76d7f318e0fb/source/libraries/kanban/dist/chunk-KYNYPKKH.cjs","sourcesContent":[null,"import type {KanbanDispatch,KanbanItem,KanbanItemSummary,KanbanWorkflowState,KanbanTaskProjection,KanbanTaskPhase} from './index';\n\ntype Item=Pick<KanbanItem,'id'|'status'|'createdAt'|'launch'|'analysis'|'control'|'issues'|'blocked'|'externalRefs'|'planning'>;\ntype Fact={phase:KanbanTaskPhase;reason?:string;actions?:KanbanTaskProjection['actions']};\nexport const TASK_START_DELAY_MS=300000;\nexport function taskStartAt(item:Pick<Item,'createdAt'|'launch'>):number {return item.launch?.startAt??item.createdAt+TASK_START_DELAY_MS;}\nexport function taskEditing(item:Pick<Item,'launch'>,now:number):boolean {return (item.launch?.editing?.expiresAt??0)>now;}\nexport function taskDue(item:Item,now:number):boolean {\n return !taskEditing(item,now)&&!item.blocked&&item.control?.action!=='pause'\n &&(item.launch?.requestedAt!==undefined||item.launch?.mode!=='manual'&&taskStartAt(item)<=now);\n}\n/** Ordered evidence projection shared by storage queries, CLI and UI. Session idle never proves acceptance. */\nexport function projectKanbanTask(item:Item,workflow?:KanbanWorkflowState,now=Date.now(),all:Array<Pick<KanbanItemSummary,'id'|'status'>>=[]):KanbanTaskProjection {\n const dispatch=Object.values(workflow?.dispatches??{}).filter(d=>d.itemId===item.id).sort((a,b)=>b.attempt-a.attempt)[0];\n const fact=terminalFact(item)??issueFact(item,dispatch)??failureFact(item,dispatch)??controlFact(item)??executionFact(item,dispatch)??waitingFact(item,now,all);\n return {...fact,startAt:taskStartAt(item),dispatchId:dispatch?.id,sessionId:dispatch?.executionSessionId,\n actions:[...fact.actions??[],...(dispatch||item.launch?.admittedAt!==undefined||['claimed','review','completed'].includes(item.status)?['fix' as const]:[]),...(dispatch?.executionSessionId?['open-session' as const]:[])]};\n}\nfunction terminalFact(item:Item):Fact|undefined {\n if(item.status==='completed'||item.status==='cancelled')return {phase:item.status};\n if(item.status==='review')return {phase:'review',actions:['review']};\n}\nfunction issueFact(item:Item,dispatch?:KanbanDispatch):Fact|undefined {\n const issue=item.issues?.find(i=>!i.resolvedBy&&(!dispatch||i.attemptId===dispatch.id));\n if(issue)return {phase:issue.type==='clarification'?'waiting-input':'error',reason:issue.id,actions:['resolve']};\n}\nfunction controlFact(item:Item):Fact|undefined {\n const control=item.control;if(!control)return;\n const reason=control.code;\n if(control.state==='unknown')return {phase:'unknown',reason};\n if(control.state==='failed')return {phase:'error',reason,actions:['resume']};\n if(control.action==='pause')return {phase:control.state==='paused'?'paused':'pausing',reason,actions:['resume']};\n if(['requested','accepted'].includes(control.state))return {phase:'resuming',reason};\n}\nfunction failureFact(item:Item,dispatch?:KanbanDispatch):Fact|undefined {\n if(dispatch?.outcome==='unknown'||item.analysis?.state==='unknown')return {phase:'unknown',reason:dispatch?.code??item.analysis?.code};\n if(dispatch&&['failed','cancelled','rejected'].includes(dispatch.outcome))return {phase:'error',reason:dispatch.code??dispatch.outcome};\n if(item.analysis?.state==='failed')return {phase:'error',reason:item.analysis.code};\n}\nfunction executionFact(item:Item,dispatch?:KanbanDispatch):Fact|undefined {\n if(item.blocked)return {phase:item.blocked.reason==='WORKSPACE_INPUT_REQUIRED'?'waiting-input':'error',reason:item.blocked.reason};\n if(dispatch?.outcome==='prepared')return {phase:'preparing'};\n if(dispatch?.outcome==='running'||item.status==='claimed')return {phase:'running',actions:dispatch?.controlCapabilities?.pause==='boundary'?['pause']:[]};\n}\nfunction waitingFact(item:Item,now:number,all:Array<Pick<KanbanItemSummary,'id'|'status'>>):Fact {\n const analysis=analysisFact(item);if(analysis)return analysis;\n const dependency=item.planning?.dependencies.find(id=>all.find(i=>i.id===id)?.status!=='completed');\n if(dependency)return {phase:'waiting-dependency',reason:'DEPENDENCY_UNFINISHED:'+dependency,actions:item.launch?.admittedAt===undefined?['edit','cancel']:[]};\n if(taskEditing(item,now))return {phase:'waiting-start',reason:'EDIT_LEASE_ACTIVE'};\n if(item.launch?.admittedAt!==undefined)return {phase:'queued'};\n return {phase:'waiting-start',reason:item.launch?.mode==='manual'?'MANUAL_START_REQUIRED':taskDue(item,now)?'ADMISSION_PENDING':'START_AT_PENDING',actions:['run','edit','pause','cancel']};\n}\nfunction analysisFact(item:Item):Fact|undefined {\n if(item.analysis?.state==='clarification')return {phase:'waiting-input',reason:item.analysis.reason};\n if(item.analysis?.state==='analyzing')return {phase:'analyzing'};\n}\n"]}
|